Sobes.tech
Назад к вопросам
Junior — Middle
73

Каким образом можно обеспечить сохранение объекта, связанного с активным компонентом в Koin?

Компании, где спрашивали
Альфа-БанкАльфа-Банк

Ответ от нейросети

sobes.tech AI

В Koin для сохранения объекта, связанного с активным компонентом (например, Activity или Fragment), используется область видимости (scope), привязанная к жизненному циклу этого компонента.

Чтобы обеспечить сохранение объекта на время жизни компонента, нужно:

  1. Создать scope, связанный с компонентом.
  2. Определить зависимости внутри этого scope.
  3. Использовать 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 и уничтожен вместе с ней.