SubwayTooter-Android-App/base/src/main/java/jp/juggler/util/coroutine/AsyncActivity.kt

26 lines
760 B
Kotlin

package jp.juggler.util.coroutine
import android.os.Bundle
import androidx.appcompat.app.AppCompatActivity
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.Job
import kotlinx.coroutines.cancel
import kotlin.coroutines.CoroutineContext
abstract class AsyncActivity : AppCompatActivity(), CoroutineScope {
private lateinit var activityJob: Job
override val coroutineContext: CoroutineContext
get() = activityJob + AppDispatchers.mainImmediate
override fun onCreate(savedInstanceState: Bundle?) {
activityJob = Job()
super.onCreate(savedInstanceState)
}
override fun onDestroy() {
super.onDestroy()
(activityJob + AppDispatchers.default).cancel()
}
}