Junior — Middle
Cum se poate asigura păstrarea obiectului asociat cu componenta activă în Koin?
sobes.tech AI
Răspuns de la AI
În Koin, pentru a salva un obiect asociat cu un component activ (de exemplu, Activity sau Fragment), se utilizează un scope legat de ciclul de viață al acestui component.
Pentru a asigura păstrarea obiectului pe durata de viață a componentului, trebuie:
- Să creezi un scope legat de component.
- Să definești dependențele în interiorul acestui scope.
- Să folosești scope-ul pentru a obține instanțe care vor trăi atât timp cât componentul.
Exemplu pentru Activity:
val activityModule = module {
scope<Activity> {
scoped { MyScopedDependency() }
}
}
// În Activity
class MyActivity : AppCompatActivity() {
private val myDependency: MyScopedDependency by currentScope.inject()
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
// ...
}
}
Astfel, obiectul MyScopedDependency va fi creat și păstrat în cadrul ciclului de viață al MyActivity și va fi distrus împreună cu ea.