Sobes.tech
Junior — Middle

Как да осигурим запазването на обекта, свързан с активния компонент в Koin?

sobes.tech AI

Отговор от 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 и унищожен заедно с нея.