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:
- Creare uno scope associato al componente.
- Definire le dipendenze all'interno di questo scope.
- 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.