Sobes.tech
Junior — Middle

Kā nodrošināt objekta saglabāšanu, kas saistīts ar aktīvo komponentu Koin?

sobes.tech AI

Atbilde no AI

Koin piedāvā iespēju saglabāt objektu, kas ir saistīts ar aktīvu komponentu (piemēram, Activity vai Fragment), izmantojot scope (apgabalu), kas ir saistīts ar šī komponenta dzīves ciklu.

Lai nodrošinātu objekta saglabāšanu komponenta dzīves laikā, ir jā:

  1. Izveido scope, kas ir saistīts ar komponentu.
  2. Definē atkarības šajā scope.
  3. Izmanto scope, lai iegūtu instancēs, kas dzīvos tikpat ilgi, cik komponenta.

Piemērs aktivitātei:

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

// Aktivitātes iekšpusē
class MyActivity : AppCompatActivity() {
    private val myDependency: MyScopedDependency by currentScope.inject()

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

Tādējādi objekts MyScopedDependency tiks izveidots un saglabāts MyActivity dzīves cikla ietvaros un tiks iznīcināts kopā ar to.