Sobes.tech
Junior — Middle

Come garantire la conservazione dell'oggetto associato al componente attivo in Koin?

sobes.tech AI

Risposta dell'AI

In Koin, per conservare un oggetto associato a un componente attivo (ad esempio, Activity o Fragment), si utilizza un scope legato al ciclo di vita di quel componente.

Per garantire la conservazione dell'oggetto durante la vita del componente, bisogna:

  1. Creare uno scope associato al componente.
  2. Definire le dipendenze all'interno di questo scope.
  3. Usare lo scope per ottenere istanze che vivranno tanto quanto il componente.

Esempio per Activity:

val activityModule = module {
    scope<Activity> {
        scoped { MyScopedDependency() }
    }
}

// Nella Activity
class MyActivity : AppCompatActivity() {
    private val myDependency: MyScopedDependency by currentScope.inject()

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        // ...
    }
}

In questo modo, l'oggetto MyScopedDependency verrà creato e conservato nel ciclo di vita di MyActivity e distrutto insieme ad essa.