阅读背景:

Android 协程 不能被取消的任务

来源:互联网 

正确示范

    /**
     * 不能被取消的任务
     */
    @Test

    fun `test cancel with NonCancellable`() = runBlocking<Unit> {
        val job = launch {
            try {
                repeat(1000) { i ->
                    println("job:I'm sleeping ${i}...")
                    delay(500L)
                }
            } finally {
               withContext(NonCancellable){
                   println("job : I'm running finally")
                   delay(1000L)
                   println("巴拉巴拉变")
               }
            }
        }

        delay(1300)
        println("main:I'm tired of waiting")
        job.cancelAndJoin()
        println("main:Now i can quit.")
    }    /**
     * 不能被取消的任务
     */
    



你的当前访问异常,请进行认证后继续阅读剩余内容。

分享到: