Junior — Middle
Wie kann die Erhaltung des Objekts, das mit dem aktiven Komponenten in Koin verbunden ist, sichergestellt werden?
sobes.tech KI
Antwort von AI
In Koin, um Objekt, das mit einem aktiven Komponenten (z.B. Activity oder Fragment) verbunden ist, wird durch einen Scope (Geltungsbereich) gespeichert, der an den Lebenszyklus dieses Komponenten gebunden ist.
Um das Objekt während der Lebensdauer des Komponenten zu sichern, muss man:
- Einen Scope erstellen, der mit dem Komponenten verbunden ist.
- Die Abhängigkeiten innerhalb dieses Scope definieren.
- Den Scope verwenden, um Instanzen zu erhalten, die so lange leben wie der Komponenten.
Beispiel für eine Activity:
val activityModule = module {
scope<Activity> {
scoped { MyScopedDependency() }
}
}
// In der Activity
class MyActivity : AppCompatActivity() {
private val myDependency: MyScopedDependency by currentScope.inject()
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
// ...
}
}
Auf diese Weise wird das Objekt MyScopedDependency erstellt und im Rahmen des Lebenszyklus von MyActivity gespeichert und zusammen mit ihr zerstört.