Sobes.tech
Junior — Middle

Ինչպե՞ս որոշել կորոուտինների տեսանելիության ոլորտը ծրագրավորման մեջ։

sobes.tech AI

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

Կորուտինայի (Coroutine Scope) տեսանելիության դաշտը որոշում է կյանքի ցիկլը և կոնտեքստը, որի մեջ է կատարվում կորուտինան: Android-ում սովորաբար օգտագործվում են տարբեր scope-ներ՝ կառավարելու կորուտինաների կյանքի ժամկետը և խուսափելու հիշողության արտահոսքներից:

Օրինակ՝

  • GlobalScope — կորուտինաները ապրում են այնքան ժամանակ, քանի դեռ աշխատում է հավելվածը, չի խորհուրդ տրվում UI-գործառույթների համար:
  • CoroutineScope, կապված կոմպոնենտի կյանքի ցիկլի հետ (օրինակ, lifecycleScope Activity կամ 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- ն կառավարում է նրա կյանքի ցիկլը։