NOTE: Why use Kotlin Coroutines?
Setup an Android Project with Kotlin.
Dependencies
Edit module:app build.gradles
.
dependencies {
// https://mvnrepository.com/artifact/org.jetbrains.kotlinx/kotlinx-coroutines-android
implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-android:1.1.1'
}
Coroutine Scope
CoroutineScope helps to ensure the Job is cancelled when container/scope is destroyed (e.g. the coroutines will cancel when activity is destroyed).
@ExperimentalCoroutinesApiclass GoogleDriveListActivity : AppCompatActivity(), CoroutineScope by MainScope() { override fun onDestroy() { super.onDestroy() cancel() } override fun test() { // launch in background thread launch(Dispatchers.Default) { } // launch in main/ui thread launch { // Dispatchers.Main } }}
NOTE: If the job should outlived the parent container, use GlobalScope.launch.
NOTE: Refer Android Kotlin Coroutine Scope for Activity, Fragment and ViewModel (Architecture Components)