728x90
withContext로 변경한다
withContext사용시 외부 변수 사용 불가능
import androidx.appcompat.app.AppCompatActivity
import android.os.Bundle
import android.util.Log
import kotlinx.android.synthetic.main.activity_main.*
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.launch
import kotlinx.coroutines.withContext
class MainActivity : AppCompatActivity() {
private var count = 0
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
btnCount.setOnClickListener {
tvCount.text = count++.toString()
}
btnDownloadUserData.setOnClickListener {
CoroutineScope(Dispatchers.IO).launch {
downloadUserData()
}
}
}
private suspend fun downloadUserData() {
withContext(Dispatchers.Main){
for (i in 1..200000) {
tvUserMessage.text = "Downloading user $i in ${Thread.currentThread().name}"
}
}
}
}
728x90
'안드로이드 > Coroutine' 카테고리의 다른 글
안드로이드 코루틴 async, await (0) | 2022.11.25 |
---|---|
안드로이드 Corutine, Retrofit을 활용한 비동기 네트워킹 처리 중 에러 핸들링 (0) | 2022.11.03 |
안드로이드 비동기 처리 후 메인 스레드 동작 (0) | 2022.07.07 |