coroutines
在用使用java寫android的時候,我們要連接api的時候大多使用rxjava,kotlin有支援一個非同步的方式,叫做coroutine
這邊要先說三個東西,分別是scope,coroutines,JOB
Coroutines就像是thread,而scope就是coroutines能做動的範圍,可以在main或是I/O thread上等等,那如果把scope.cancel掉之後,那底下的Coroutines取消,這樣會沒辦法直接控制到單一的Coroutine,所以這邊就會用到JOB簡單來說JOB就是單一Coroutine的生命週期。
實做方法如下
private val myScope = object: CoroutineScope{
override val coroutineContext: CoroutineContext
get() = job
}
private val job = Job()
fun coroutine(){
myScope.launch(Dispatchers.Main){
// do()
}
}
private suspend fun do() = withContext(Dispatchers.IO){
}