Sobes.tech
Junior — Middle

Чӣ гуна метавон ҳифзи объекте, ки бо компонентҳои фаъол дар Koin алоқаманд аст, таъмин кард?

sobes.tech AI

Ҷавоб аз AI

Дар Koin, барои нигоҳ доштани объект, ки бо компонент фаъол (масалан, Activity ё Fragment) алоқаманд аст, истифода мешавад scope (ҳудуд), ки бо давраи ҳаёти он компоненти пайваст аст.

Барои таъмини нигоҳдории объект дар давоми ҳаёти компоненти, бояд:

  1. Ҳудуди пайвастшуда бо компоненти созед.
  2. Тавсияҳоро дар дохили ин scope муайян кунед.
  3. Ҳудудро барои гирифтани намунаҳо истифода баред, ки ҳамон қадар зиндагӣ мекунанд, ки компоненти.

Масалан барои Activity:

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

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

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

Бинобар ин, объект MyScopedDependency эҷод мешавад ва дар доираи давраи ҳаёти MyActivity нигоҳ дошта мешавад ва бо он нобуд мешавад.