Android Kotlin : GlobalScope와 CoroutineScope

2022. 10. 22. 18:56[Android APP] feat. Kotlin/Kotlin 공부

개요

Coroutine을 처음 사용할 때 아무것도 모르고 GlobalScope를 사용했다가 액티비티를 이동해도 API 호출이 끝나지 않고 백그라운드에서 계속 돌아가는 오류가 생겼었다.

 

본문 

GlobalScope

- Application이 종료될 때 까지 존재하는 코루틴이다.

- Activity가 종료되어도 존재하는 코루틴이다.

- 싱글톤으로 만들어져 있어 잘못 활용하면 앱을 강제종료 시킬 수 있다.

 

job = GlobalScope.launch(Dispatchers.IO) {
    //코드 내용
     job.join()
}

job.cancel()

 

CoroutineScope

- 각각의 Life Cycle을 가지고 있다.

- 사용자가 Life Cycle을 용도에 맞게 맞춰줄 수 있다.

 

job = CoroutineScope(Dispatchers.IO).launch{  
    //내용
    job?.join()
}

job?.cancel()
반응형