Junior — Middle
Jak zapewnić zachowanie obiektu powiązanego z aktywnym komponentem w Koin?
sobes.tech AI
Odpowiedź od AI
W Koin, aby zapisać obiekt powiązany z aktywnym komponentem (np. Activity lub Fragment), używa się zakresu (scope), który jest powiązany z cyklem życia tego komponentu.
Aby zapewnić zachowanie obiektu przez czas życia komponentu, należy:
- Utworzyć scope powiązany z komponentem.
- Zdefiniować zależności w tym scope.
- Używać scope do uzyskiwania instancji, które będą żyły tak długo, jak komponent.
Przykład dla Activity:
val activityModule = module {
scope<Activity> {
scoped { MyScopedDependency() }
}
}
// W Activity
class MyActivity : AppCompatActivity() {
private val myDependency: MyScopedDependency by currentScope.inject()
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
// ...
}
}
W ten sposób obiekt MyScopedDependency zostanie utworzony i zapisany w ramach cyklu życia MyActivity i zniszczony razem z nią.