Back to questions
amoCRM
Junior — Middle
67
Как определить область видимости у корутин в программировании?
Companies where asked
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")
}
}
}
Таким образом, область видимости корутины определяется скоупом, в котором она запускается, и этот скоуп управляет её жизненным циклом.