Junior — Middle
Ako zabezpečiť zachovanie objektu spojeného s aktívnou súčasťou v Koin?
sobes.tech AI
Odpoveď od AI
V Koin-e, na ukladanje objekta, povezanega z aktivnim komponentom (npr. Activity ali Fragment), se uporablja scope (obseg), ki je povezan z življenjskim ciklom tega komponenta.
Da bi zagotovili shranjevanje objekta skozi življenjsko dobo komponenta, je potrebno:
- Ustvariti scope, povezan s komponentom.
- Določiti odvisnosti znotraj tega scope-a.
- Uporabiti scope za pridobivanje instanc, ki bodo živeli tako dolgo kot komponent.
Primer za 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)
// ...
}
}
Tako bo objekt MyScopedDependency ustvarjen in shranjen v okviru življenjskega cikla MyActivity in uničen skupaj z njo.