Sobes.tech
Junior — Middle

Hogyan biztosítható a Koinban az aktív komponenssel kapcsolatos objektum megőrzése?

sobes.tech MI

Válasz az MI-től

A Koin-ban egy aktív komponenshez (például Activity vagy Fragment) kapcsolódó objektum tárolásához egy scope-ot (hatókört) használunk, amely a komponens életciklusához kötött.

Az objektum életben tartásának biztosításához a komponens életében,:

  1. Hozz létre egy scope-ot, amely a komponenshez kapcsolódik.
  2. Határozd meg a függőségeket ebben a scope-ban.
  3. Használd a scope-ot az olyan példányok eléréséhez, amelyek ugyanannyi ideig élnek, mint a komponens.

Példa Activity-hez:

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

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

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

Így az MyScopedDependency objektum létrejön és a MyActivity életciklusán belül tárolódik, és vele együtt megsemmisül.