Android 协程 超时任务

Posted 安果移不动

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android 协程 超时任务相关的知识,希望对你有一定的参考价值。

    /**
     * 超时任务
     */
    @Test
    fun `test deal with timeout`() = runBlocking<Unit> 
        withTimeout(1300) 
            repeat(1000)  i ->
                println("job:I'm sleeping $i ...")
                delay(500)

            
        
    

时间不够会自动抛出异常退出

 可以使用withnull拿到结果

   /**
     * 超时任务
     */
    @Test
    fun `test deal with timeout return null`() = runBlocking<Unit> 
        //时间不够会自动抛出异常退出
       val res=withTimeoutOrNull(1300) 
            repeat(2)  i ->
                println("job:I'm sleeping $i ...")
                delay(500)
            
           "done"
        
        println(res)
    

2次的重复肯定是返回done 如果三次则返回null

以上是关于Android 协程 超时任务的主要内容,如果未能解决你的问题,请参考以下文章

Kotlin 协程协程取消 ③ ( finally 释放协程资源 | 使用 use 函数执行 Closeable 对象释放资源操作 | 构造无法取消的协程任务 | 构造超时取消的协程任务 )

我想在使用 kotlin 协程的 android 超时后取消一个函数,但它不起作用

Kotlin 协程协程简介 ( 协程概念 | 协程作用 | 创建 Android 工程并进行协程相关配置开发 | 异步任务与协程对比 )

Kotlin 协程协程简介 ( 协程概念 | 协程作用 | 创建 Android 工程并进行协程相关配置开发 | 异步任务与协程对比 )

Android 协程 不能被取消的任务

Android 协程 cpu密集型任务的取消