Sobes.tech
Junior — Middle

Kuidas tagada objekti, mis on seotud aktiivse komponendiga Koinis?

sobes.tech AI

Vastus AI-lt

Koin võimaldab salvestada objekti, mis on seotud aktiivse komponendiga (näiteks Activity või Fragment), kasutades selle komponendi elutsükliga seotud scope (piirkonda).

Objekti säilitamiseks kogu komponendi elutsükli jooksul tuleb:

  1. Luua scope, mis on seotud komponendiga.
  2. Määratleda sõltuvused selle scope'i sees.
  3. Kasutada scope'i, et saada eksemplare, mis elavad sama kaua kui komponent.

Näide Activity jaoks:

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

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

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

Sellisel viisil luuakse ja hoitakse MyScopedDependency objekti MyActivity elutsükli jooksul ning see hävib koos sellega.