Junior — Middle
Come viene implementata la funzionalità dell'annotazione @Restartable in Jetpack Compose e qual è il suo scopo?
sobes.tech AI
Risposta dell'AI
L’annotazione @Restartable in Jetpack Compose viene utilizzata per creare effetti che si riavviano automaticamente quando cambiano i parametri chiave. Questo semplifica la gestione del ciclo di vita degli effetti, come le coroutine o gli abbonamenti, che devono essere aggiornati quando cambiano i dati di input.
Scopo:
- Permette di avviare e annullare effetti collaterali quando cambiano le dipendenze.
- Garantisce il riavvio automatico dell’effetto senza dover monitorare manualmente i cambiamenti.
Esempio di utilizzo:
@Composable
fun MyComposable(userId: String) {
@Restartable
fun loadUserData() {
// Viene eseguito ogni volta che cambia userId
LaunchedEffect(userId) {
val data = repository.getUserData(userId)
// aggiornamento dello stato
}
}
loadUserData()
}
In questo esempio, quando userId cambia, l’effetto di caricamento dei dati si riavvierà automaticamente, semplificando il codice e rendendolo più dichiarativo.