Junior — Middle
Jak zajistit zachování objektu spojeného s aktivní složkou v Koin?
sobes.tech AI
Odpověď od AI
V Koinu se k ukládá objekt, který je spojen s aktivním komponentem (například Activity nebo Fragment), pomocí scope (rozsahu, oblasti), který je vázán na životní cyklus tohoto komponentu.
Aby bylo zajištěno uchování objektu po dobu života komponentu, je třeba:
- Vytvořit scope spojený s komponentem.
- Definovat závislosti uvnitř tohoto scope.
- Použít scope k získání instancí, které budou žít stejně dlouho jako komponent.
Příklad pro Activity:
val activityModule = module {
scope<Activity> {
scoped { MyScopedDependency() }
}
}
// V Activity
class MyActivity : AppCompatActivity() {
private val myDependency: MyScopedDependency by currentScope.inject()
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
// ...
}
}
Tímto způsobem bude objekt MyScopedDependency vytvořen a uložen v rámci životního cyklu MyActivity a zničen spolu s ní.