Junior — Middle
Hogyan biztosítható a Koinban az aktív komponenssel kapcsolatos objektum megőrzése?
sobes.tech MI
Válasz az MI-től
A Koin-ban egy aktív komponenshez (például Activity vagy Fragment) kapcsolódó objektum tárolásához egy scope-ot (hatókört) használunk, amely a komponens életciklusához kötött.
Az objektum életben tartásának biztosításához a komponens életében,:
- Hozz létre egy scope-ot, amely a komponenshez kapcsolódik.
- Határozd meg a függőségeket ebben a scope-ban.
- Használd a scope-ot az olyan példányok eléréséhez, amelyek ugyanannyi ideig élnek, mint a komponens.
Példa Activity-hez:
val activityModule = module {
scope<Activity> {
scoped { MyScopedDependency() }
}
}
// Az Activity-ben
class MyActivity : AppCompatActivity() {
private val myDependency: MyScopedDependency by currentScope.inject()
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
// ...
}
}
Így az MyScopedDependency objektum létrejön és a MyActivity életciklusán belül tárolódik, és vele együtt megsemmisül.