Назад к вопросам
Альфа-Банк
Junior — Middle
73
Каким образом можно обеспечить сохранение объекта, связанного с активным компонентом в Koin?
Компании, где спрашивали
Ответ от нейросети
sobes.tech 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 и уничтожен вместе с ней.