Scope e cicli di vita dei componenti
Controlli per quanto tempo vivono le dipendenze.
Scope e cicli di vita dei componenti è una lezione Jetpack Compose Academy gratuita su CoddyKit. Questa è la lezione 4 di 4. Puoi leggere la lezione completa qui gratuitamente — poi esercitati direttamente nel browser con un editor di codice integrato e un tutor IA disponibile 24/7. Fa parte del percorso di apprendimento Jetpack Compose Academy, e i tuoi progressi si sincronizzano tra il web e l'app CoddyKit. Il corso Jetpack Compose Academy include 4 lezioni in totale.
Che cosa controlla un ambito
Un ambito stabilisce per quanto tempo Hilt mantiene in vita una singola istanza e dove la condivide. Riguarda il ciclo di vita, non solo la creazione.
Senza ambito per impostazione predefinita
Senza un'annotazione di ambito, Hilt crea una nuova istanza ogni volta che viene richiesta. Va bene per oggetti economici e senza stato.
@Provides
fun provideMapper(): Mapper = Mapper() // fresh each timeI componenti rispecchiano Android
Hilt offre una serie di componenti che corrispondono ai cicli di vita di Android, dall'intera app fino a una singola view. Ognuno gestisce le proprie istanze.
In tutta l'app con Singleton
SingletonComponent vive quanto l'app. I binding qui definiti con @Singleton vengono creati una volta sola e condivisi da tutte le schermate.
@InstallIn(SingletonComponent::class)Ciclo di vita per Activity
ActivityComponent segue una singola Activity. Usate @ActivityScoped per condividere un'istanza all'interno di quell'Activity e ricrearla in una nuova Activity.
@ActivityScoped
class FormState @Inject constructor()Ambito del ViewModel
ViewModelComponent corrisponde al ciclo di vita di un ViewModel. Con @ViewModelScoped, una dipendenza viene condivisa solo all'interno di quel ViewModel.
@ViewModelScoped
class SessionCache @Inject constructor()L'ambito equivale ad annotazione più componente
Ogni ambito annotation è associato a un componente. @Singleton va con SingletonComponent, @ActivityScoped con ActivityComponent e così via.
I cicli di vita formano una gerarchia
I componenti sono annidati: un'Activity vive all'interno dell'app e un Fragment all'interno dell'Activity. Un elemento figlio può usare tutto ciò che forniscono i suoi elementi genitori.
Usare gli ambiti con attenzione
Definire un ambito consuma memoria, perché l'istanza viene mantenuta fino alla distruzione del componente. Definite l'ambito solo per gli oggetti il cui stato deve davvero essere condiviso.
Evitate di far trapelare un ambito più ampio
Non iniettate mai un oggetto di breve durata, come un'Activity, in un Singleton. Il contenitore con durata maggiore lo manterrebbe in vita causando una perdita di memoria. ⚠️
Scegliere l'ambito giusto
Fate corrispondere l'ambito al ciclo di vita dei dati: la configurazione dell'app in Singleton, lo stato della schermata in ViewModelScoped. La scelta corretta previene perdite e sprechi.
Verifica rapida
Desiderate una singola istanza condivisa per l'intero ciclo di vita dell'app. Quale ambito è adatto?
Riepilogo: cicli di vita sotto controllo
Avete imparato che gli ambiti collegano il ciclo di vita di un'istanza a un componente, da Singleton fino a ViewModel, così le dipendenze vivono esattamente per il tempo necessario. 🎯
Domande Frequenti
La lezione «Scope e cicli di vita dei componenti» è gratuita?
Sì — il testo completo di «Scope e cicli di vita dei componenti» è gratuito qui sul web. Per esercitarvi in modo interattivo (un editor di codice integrato e un tutor IA 24/7) e sbloccare il resto del corso Jetpack Compose Academy, passa a CoddyKit PRO. Il corso Jetpack Compose Academy include 4 lezioni in totale.
Cosa imparerò in «Scope e cicli di vita dei componenti»?
Controlli per quanto tempo vivono le dipendenze. Eserciti Jetpack Compose Academy con codice pratico che esegui direttamente nel browser, e un tutor IA 24/7 risponde alle tue domande mentre lavori sulla lezione.
Ho bisogno di esperienza per iniziare Jetpack Compose Academy?
Non è richiesta alcuna esperienza precedente. Jetpack Compose Academy su CoddyKit è strutturato per principianti e studenti avanzati, quindi puoi iniziare da qui o dall'inizio e procedere al tuo ritmo. Questa è la lezione 4 di 4.
Quanto tempo richiede la lezione «Scope e cicli di vita dei componenti»?
La maggior parte delle lezioni CoddyKit richiede circa 5–10 minuti. Ogni lezione è breve e interattiva, quindi fai progressi costanti e riprendi esattamente da dove hai lasciato su web e app.
Posso scrivere ed eseguire codice in questa lezione Jetpack Compose Academy?
Sì. Ogni lezione Jetpack Compose Academy include un editor di codice integrato, quindi scrivi ed esegui codice reale direttamente nel tuo browser e ricevi feedback istantaneo dall'IA — nessuna configurazione locale necessaria.
Tutte le lezioni di questo corso
- Perché la DI: codice testabile e disaccoppiato
- Moduli, @Provides e @Binds
- hiltViewModel e @HiltViewModel
- Scope e cicli di vita dei componenti