Sobes.tech
Junior — Middle

Ինչպե՞ս ապահովել Koin-ում ակտիվ կոմպոնենտի հետ կապված օբյեկտի պահպանությունը։

sobes.tech AI

Պատասխան AI-ից

Koin-ում, ակտիվ կոմպոնենտի (օրինակ, Activity կամ Fragment) հետ կապված օբյեկտը պահելու համար օգտագործվում է scope (տարածք), որը կապված է այդ կոմպոնենտի կյանքի ցիկլի հետ:

Որպեսզի ապահովվի օբյեկտի պահպանումը կոմպոնենտի կյանքի ընթացքում, անհրաժեշտ է.

  1. Ստեղծել scope, որը կապված է կոմպոնենտի հետ:
  2. Նշել կախվածությունները այդ scope-ի ներսում:
  3. Օգտագործել scope-ը՝ ստանալու համար այն օրինակները, որոնք ապրում են այնքան ժամանակ, որքան կոմպոնենտը:

Օրինակ 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-ի կյանքի ցիկլի շրջանակներում և կչեզոքացվի նրա հետ միասին։