Sobes.tech
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:

  1. Să creezi un scope legat de component.
  2. Să definești dependențele în interiorul acestui scope.
  3. 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.