Jason
Log: Before delay Log: Init Status: true Log: Job Status: true
getUserInfo()
interface InitRepository { val initFinish: Flow<Boolean> } suspend fun startApp() { checkStatus() waitInitializeDone() -> App is stuck on waiting here... Forever waiting getUserInfo() } suspend fun waitInitializeDone() { withContext(<http://Dispatchers.IO|Dispatchers.IO>) { val waitJob = launch { Log.d("Before delay") delay(10000L) throw TimeoutException("Init process timeout") } initRepository.initFinish .onEach { initFinish -> Log.d("Init Status: $initFinish") Log.d("Job Status: ${waitJob.isActive}") if (initFinish && waitJob.isActive) { waitJob.cancel() } } .launchIn(this) } }
Yigitunlu
job
A modern programming language that makes developers happier.