Junior — Middle
Как да осигурим запазването на обекта, свързан с активния компонент в Koin?
sobes.tech AI
Отговор от AI
В Koin за запазване на обект, свързан с активен компонент (например Activity или Fragment), се използва scope, свързан с жизнения цикъл на този компонент.
За да осигурите запазването на обекта по време на живота на компонента, трябва:
- Да създадете scope, свързан с компонента.
- Да дефинирате зависимостите вътре в този scope.
- Да използвате scope за получаване на екземпляри, които ще живеят толкова, колкото и компонентът.
Пример за Activity:
val activityModule = module {
scope<Activity> {
scoped { MyScopedDependency() }
}
}
// В Activity
class MyActivity : AppCompatActivity() {
private val myDependency: MyScopedDependency by currentScope.inject()
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
// ...
}
}
По този начин, обектът MyScopedDependency ще бъде създаден и запазен в рамките на жизнения цикъл на MyActivity и унищожен заедно с нея.