Junior — Middle
Hoe kan het behoud van het object dat verbonden is met de actieve component in Koin worden verzekerd?
sobes.tech AI
Antwoord van AI
In Koin, om een object dat gekoppeld is aan een actieve component (bijvoorbeeld een Activity of Fragment) op te slaan, wordt een scope gebruikt die gekoppeld is aan de levenscyclus van die component.
Om het object gedurende de levensduur van de component te behouden, moet je:
- Een scope creëren die gekoppeld is aan de component.
- De afhankelijkheden binnen deze scope definiëren.
- De scope gebruiken om instanties te verkrijgen die zo lang leven als de component.
Voorbeeld voor een Activity:
val activityModule = module {
scope<Activity> {
scoped { MyScopedDependency() }
}
}
// In de Activity
class MyActivity : AppCompatActivity() {
private val myDependency: MyScopedDependency by currentScope.inject()
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
// ...
}
}
Op deze manier wordt het object MyScopedDependency aangemaakt en opgeslagen binnen de levenscyclus van MyActivity en wordt het samen met haar vernietigd.