Junior — Middle
Ինչպե՞ս որոշել կորոուտինների տեսանելիության ոլորտը ծրագրավորման մեջ։
sobes.tech AI
Պատասխան AI-ից
Կորուտինայի (Coroutine Scope) տեսանելիության դաշտը որոշում է կյանքի ցիկլը և կոնտեքստը, որի մեջ է կատարվում կորուտինան: Android-ում սովորաբար օգտագործվում են տարբեր scope-ներ՝ կառավարելու կորուտինաների կյանքի ժամկետը և խուսափելու հիշողության արտահոսքներից:
Օրինակ՝
- GlobalScope — կորուտինաները ապրում են այնքան ժամանակ, քանի դեռ աշխատում է հավելվածը, չի խորհուրդ տրվում UI-գործառույթների համար:
- CoroutineScope, կապված կոմպոնենտի կյանքի ցիկլի հետ (օրինակ,
lifecycleScopeActivity կամ Fragment-ում) — կորուտինաները ավտոմատ կերպով չեղյալ են հայտարարվում կոմպոնենտի ոչնչացման ժամանակ:
lifecycleScope-ի օգտագործման օրինակ՝
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
lifecycleScope.launch {
// Կորուտինայի կոդը, որը չեղյալ է հայտարարվում Activity-ի ոչնչացման ժամանակ
delay(1000)
println("Կորուտինա ավարտվեց")
}
}
}
Այսպիսով, կորուտինայի տեսանելիության դաշտը որոշվում է այն scope-ով, որտեղից այն սկսվում է, և այդ scope- ն կառավարում է նրա կյանքի ցիկլը։