Sobes.tech
Junior — Middle

Kaip užtikrinti objekto, susijusio su aktyviu komponentu Koin, išsaugojimą?

sobes.tech AI

Atsakymas iš AI

Koin'e, norint išsaugoti objektą, susijusį su aktyviu komponentu (pvz., Activity ar Fragment), naudojamas scope (apibrėžimas), kuris yra susijęs su šio komponento gyvavimo ciklu.

Kad užtikrintumėte objekto išsaugojimą per komponento gyvavimo laiką, turite:

  1. Sukurti scope, susijusį su komponentu.
  2. Apibrėžti priklausomybes šio scope viduje.
  3. Naudoti scope, kad gautumėte egzempliorius, kurie gyvens tiek pat, kiek ir komponentas.

Pavyzdys Activity:

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

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

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

Taip, objektas MyScopedDependency bus sukurtas ir išsaugotas MyActivity gyvavimo cikle ir bus sunaikintas kartu su ja.