안녕하세요 허접샴푸입니다~!
이번에는 Coroutine을 이용하여 커스텀 Dialog를 2초 동안 보여지게 하고 2초 후 꺼지게 하는 방법에 대해 설명해 드리도록 하겠습니다.
Coroutine 공식 github 사이트를 통해 더 많은 정보를 얻어가시기 바랍니다.
Coroutine -> https://github.com/Kotlin/kotlinx.coroutines
[1] 먼저 Coroutine을 사용하기 위해서는 build.gradle (Module: app)에 아래와 같이 dependency를 추가해주어야 합니다.
//Coroutine
implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-android:1.3.3'
[2] MainActivity.kt에서 아래와 같이 showLoadingDialog 함수를 만들어줍니다.
CoroutineScope(Main) : 여기서 "Main"은 Dispatchers.Main을 뜻하며 UI 작업, 가벼운 동작, livedata 업데이트 등에 사용이 됩니다. 저희는 Custom dialog 를 화면에 띄우고 2초 후 꺼지도록 하는 UI 작업을 해야 하므로 Dispatchers.Main을 사용합니다.
delay(2000) : delay의 설명은 Delays coroutine for a given time without blocking a thread and resumes it after a specified time. 라고 되어있습니다. 즉 주어진 시간동안 코루틴을 연기시키고, 그 시간 후에 재가동(resume) 합니다. 즉 delay를 통해 2초동안 Custom Dialog를 띄울 수 있게 되는 것이죠.
2초 후에는 dialog.dismiss()를 통해 다이얼로그를 종료시키면 끗~! 별 어려움 없죠?
실제 앱 서비스에서 이러한 Coroutine 및 커스텀 로딩 다이얼로그의 사용 용도는 주로 많은 양의 작업을 소화시켜야 하거나, Network 통신이 이루어 질때 입니다.
[결과 화면]
[깃허브]
아래 깃허브에서 해당 코드를 확인 하실 수 있습니다.
https://github.com/DJDrama/Playground/tree/coroutine
질문이 있으시면 댓글에 적어주시면 감사하겠습니다~!
'[Android] > 허접 Programming Tips' 카테고리의 다른 글
[Navigation] Android Jetpack Navigation + BottomNavigationView (1 / 2) (9) | 2020.04.03 |
---|---|
Xml에서 tools는 도데체 무엇인가? (0) | 2020.04.03 |
안드로이드 Kotlin으로 Custom Loading Dialog(커스텀 로딩 다이얼로그) 구현하기 (0) | 2020.02.28 |
Google Map 구글 지도 getFragmentManager() Deprecated 해결방법 (0) | 2018.11.29 |
안드로이드 Animation으로 Custom Loading(커스텀 로딩) 구현하기(2/2) (3) | 2017.07.18 |