Rajaukset ja komponenttien elinkaaret
Hallinnoikaa riippuvuuksien elinikää.
Rajaukset ja komponenttien elinkaaret on ilmainen Jetpack Compose Academy-oppitunti CoddyKitissä. Tämä on oppitunti 4/4. Voit lukea koko oppitunnin alta ilmaiseksi ja harjoitella sen jälkeen käytännössä selaimessa sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla. Oppitunti kuuluu Jetpack Compose Academy-oppimispolkuun, ja edistymisesi synkronoituu verkon ja CoddyKit-sovelluksen välillä. Jetpack Compose Academy-kurssilla on yhteensä 4 oppituntia.
Mitä scope hallitsee
Scope määrittää, kuinka kauan Hilt pitää yhtä instanssia elossa ja missä sitä jaetaan. Kyse on elinkaaresta, ei vain luomisesta.
Oletusarvoisesti ilman scopea
Ilman scope-annotaatiota Hilt rakentaa uuden instanssin aina, kun sitä pyydetään. Tämä sopii edullisille ja tilattomille olioille.
@Provides
fun provideMapper(): Mapper = Mapper() // fresh each timeKomponentit vastaavat Androidin elinkaaria
Hilt tarjoaa joukon komponentteja, jotka vastaavat Androidin elinkaaria koko sovelluksesta yksittäiseen näkymään. Jokainen komponentti omistaa omat instanssinsa.
Koko sovelluksessa Singletonilla
SingletonComponent elää yhtä kauan kuin sovellus. Tähän komponenttiin sidotut @Singleton-oliot luodaan kerran ja jaetaan kaikkien näyttöjen kesken.
@InstallIn(SingletonComponent::class)Activity-kohtainen elinkaari
ActivityComponent seuraa yhtä Activitya. Käytä @ActivityScoped-annotaatiota jakaaksesi instanssin kyseisen Activityn sisällä ja luodaksesi sen uudelleen uudelle Activitylle.
@ActivityScoped
class FormState @Inject constructor()ViewModel-scope
ViewModelComponent vastaa ViewModelin elinkaarta. @ViewModelScoped-annotaatiolla riippuvuus jaetaan vain kyseisen ViewModelin sisällä.
@ViewModelScoped
class SessionCache @Inject constructor()Scope on annotaation ja komponentin yhdistelmä
Jokainen scope-annotaatio liittyy yhteen komponenttiin. @Singleton kuuluu SingletonComponentiin, @ActivityScoped ActivityComponentiin ja niin edelleen.
Elinkaaret muodostavat hierarkian
Komponentit sisältävät toisensa: Activity elää sovelluksen sisällä ja Fragment Activityn sisällä. Lapsi voi käyttää kaikkea, mitä sen vanhemmat tarjoavat.
Käytä scopeja harkiten
Scopet kuluttavat muistia, koska instanssia säilytetään, kunnes sen komponentti tuhoutuu. Käytä scopea vain olioille, joiden tila on aidosti jaettava.
Vältä laajemman scopen vuotamista
Älä koskaan injektoi lyhytikäistä oliota, kuten Activitya, Singletoniin. Pidempi-ikäinen säilö pitäisi sen elossa ja aiheuttaisi muistivuodon. ⚠️
Valitse oikea scope
Sovita scope tietojen elinkaareen: sovelluksen asetukset Singletoniin ja näytön tila ViewModelScoped-scopeen. Oikea valinta ehkäisee vuotoja ja turhaa kulutusta.
Pikatarkistus
Haluat yhden jaetun instanssin koko sovelluksen elinkaaren ajaksi. Mikä scope sopii tähän?
Kertaus: Elinkaaret hallintaan
Opit, että scopet sitovat instanssin elinkaaren komponenttiin Singletonista ViewModeliin, joten riippuvuudet elävät täsmälleen tarvittavan ajan. 🎯
Opi Kotlin tekoälytuutorin avulla — ilmaiseksi
Kirjoita ja suorita oikeaa koodia selaimessa, saa välitöntä apua tekoälytuutorilta ympäri vuorokauden ja jatka siitä, mihin jäit, verkossa tai sovelluksessa.
- Kurssit
- 30
- Oppitunnit
- 120
Usein kysytyt kysymykset
Onko oppitunti ”Rajaukset ja komponenttien elinkaaret” ilmainen?
Kyllä – oppitunnin ”Rajaukset ja komponenttien elinkaaret” koko tekstin voi lukea täällä verkossa ilmaiseksi. Jos haluat harjoitella interaktiivisesti sisäänrakennetulla koodieditorilla ja ympäri vuorokauden käytettävissä olevan tekoälytuutorin avulla sekä avata koko Jetpack Compose Academy-kurssin, päivitä CoddyKit PROhon. Jetpack Compose Academy-kurssilla on yhteensä 4 oppituntia.
Mitä opin oppitunnilla ”Rajaukset ja komponenttien elinkaaret”?
Hallinnoikaa riippuvuuksien elinikää. Harjoittelet Jetpack Compose Academy-aihetta koodilla, jonka suoritat suoraan selaimessa. Ympäri vuorokauden käytettävissä oleva tekoälytuutori vastaa kysymyksiisi oppitunnin aikana.
Tarvitsenko kokemusta aloittaakseni Jetpack Compose Academy-opiskelun?
Aiempi kokemus ei ole tarpeen. CoddyKitin Jetpack Compose Academy-oppimispolku sopii vasta-alkajista edistyneisiin, joten voit aloittaa tästä tai alusta ja edetä omaan tahtiisi. Tämä on oppitunti 4/4.
Kuinka kauan ”Rajaukset ja komponenttien elinkaaret”-oppitunnin suorittaminen kestää?
Useimmat CoddyKitin oppitunnit kestävät noin 5–10 minuuttia. Jokainen oppitunti on lyhyt ja interaktiivinen, joten edistyt tasaisesti ja voit jatkaa siitä, mihin jäit – sekä verkossa että sovelluksessa.
Voinko kirjoittaa ja suorittaa koodia tällä Jetpack Compose Academy-oppitunnilla?
Kyllä. Jokainen Jetpack Compose Academy-oppitunti sisältää sisäänrakennetun koodieditorin, joten voit kirjoittaa ja suorittaa oikeaa koodia suoraan selaimessa ja saada välitöntä palautetta tekoälyltä – paikallista asennusta ei tarvita.
Kaikki tämän kurssin oppitunnit
- Miksi DI: testattava ja irtikytketty koodi
- Moduulit, @Provides ja @Binds
- hiltViewModel ja @HiltViewModel
- Rajaukset ja komponenttien elinkaaret