Setup Android Kotlin Coroutines (1.1) With Coroutine Scope

April 6, 2019

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).

@ExperimentalCoroutinesApi
class 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)

This work is licensed under a
Creative Commons Attribution-NonCommercial 4.0 International License.