Sobes.tech
Back to questions
Junior — Middle
67

Как определить область видимости у корутин в программировании?

Companies where asked
amoCRMamoCRM

Answer from AI

sobes.tech AI

Область видимости корутины (Coroutine Scope) определяет жизненный цикл и контекст, в котором корутина выполняется. В Android обычно используют разные скоупы, чтобы управлять временем жизни корутин и избежать утечек памяти.

Например:

  • GlobalScope — корутины живут пока работает приложение, не рекомендуется для UI-задач.
  • CoroutineScope, связанный с жизненным циклом компонента (например, lifecycleScope в Activity или Fragment) — корутины отменяются автоматически при уничтожении компонента.

Пример использования lifecycleScope в Activity:

class MainActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        setContentView(R.layout.activity_main)

        lifecycleScope.launch {
            // Код корутины, которая отменится при уничтожении Activity
            delay(1000)
            println("Coroutine finished")
        }
    }
}

Таким образом, область видимости корутины определяется скоупом, в котором она запускается, и этот скоуп управляет её жизненным циклом.