viewModelScope
CoroutineScope instance for the DispatchViewModel. By default, it uses the Dispatchers.Main.immediate dispatcher
The viewModelScope instance is created automatically upon first access from the factory set in ViewModelScopeFactory.
The type of CoroutineScope created is configurable via ViewModelScopeFactory.set.
viewModelScope is automatically cancelled when onCleared() is invoked.
Samples
import dispatch.android.viewmodel.DispatchViewModel
import dispatch.core.launchMain
import dispatch.internal.test.Sample5
import io.kotest.matchers.shouldBe
import kotlinx.coroutines.ExperimentalCoroutinesApi
import kotlinx.coroutines.isActive
fun main() {
//sampleStart
class SomeViewModel : DispatchViewModel() {
init {
// auto-created MainImmediateCoroutineScope which is auto-cancelled in onClear()
viewModelScope // ...
// it works as a normal CoroutineScope (because it is)
viewModelScope.launchMain { }
// this is the same CoroutineScope instance each time
viewModelScope.launchMain { }
}
override fun onClear() {
viewModelScope.isActive shouldBe false
}
}
//sampleEnd
}