Sobes.tech
Junior — Middle

Ako zabezpečiť zachovanie objektu spojeného s aktívnou súčasťou v Koin?

sobes.tech AI

Odpoveď od AI

V Koin-e, na ukladanje objekta, povezanega z aktivnim komponentom (npr. Activity ali Fragment), se uporablja scope (obseg), ki je povezan z življenjskim ciklom tega komponenta.

Da bi zagotovili shranjevanje objekta skozi življenjsko dobo komponenta, je potrebno:

  1. Ustvariti scope, povezan s komponentom.
  2. Določiti odvisnosti znotraj tega scope-a.
  3. Uporabiti scope za pridobivanje instanc, ki bodo živeli tako dolgo kot komponent.

Primer za Activity:

val activityModule = module {
    scope<Activity> {
        scoped { MyScopedDependency() }
    }
}

// V Activity
class MyActivity : AppCompatActivity() {
    private val myDependency: MyScopedDependency by currentScope.inject()

    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        // ...
    }
}

Tako bo objekt MyScopedDependency ustvarjen in shranjen v okviru življenjskega cikla MyActivity in uničen skupaj z njo.