Junior — Middle
Kuidas tagada objekti, mis on seotud aktiivse komponendiga Koinis?
sobes.tech AI
Vastus AI-lt
Koin võimaldab salvestada objekti, mis on seotud aktiivse komponendiga (näiteks Activity või Fragment), kasutades selle komponendi elutsükliga seotud scope (piirkonda).
Objekti säilitamiseks kogu komponendi elutsükli jooksul tuleb:
- Luua scope, mis on seotud komponendiga.
- Määratleda sõltuvused selle scope'i sees.
- Kasutada scope'i, et saada eksemplare, mis elavad sama kaua kui komponent.
Näide Activity jaoks:
val activityModule = module {
scope<Activity> {
scoped { MyScopedDependency() }
}
}
// Activity sees
class MyActivity : AppCompatActivity() {
private val myDependency: MyScopedDependency by currentScope.inject()
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
// ...
}
}
Sellisel viisil luuakse ja hoitakse MyScopedDependency objekti MyActivity elutsükli jooksul ning see hävib koos sellega.