Sobes.tech
Junior — Middle

Jak zapewnić zachowanie obiektu powiązanego z aktywnym komponentem w Koin?

sobes.tech AI

Odpowiedź od AI

W Koin, aby zapisać obiekt powiązany z aktywnym komponentem (np. Activity lub Fragment), używa się zakresu (scope), który jest powiązany z cyklem życia tego komponentu.

Aby zapewnić zachowanie obiektu przez czas życia komponentu, należy:

  1. Utworzyć scope powiązany z komponentem.
  2. Zdefiniować zależności w tym scope.
  3. Używać scope do uzyskiwania instancji, które będą żyły tak długo, jak komponent.

Przykład dla Activity:

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

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

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

W ten sposób obiekt MyScopedDependency zostanie utworzony i zapisany w ramach cyklu życia MyActivity i zniszczony razem z nią.