美文网首页
WorkManager中的线程处理

WorkManager中的线程处理

作者: itBox | 来源:发表于2022-07-09 08:02 被阅读0次

WorkManager 使用入门中,我们提到 WorkManager 可以代表您异步执行后台工作。该基本实现可满足大多数应用的需求。关于更高级的用例(例如正确处理正在停止的工作),您应了解 WorkManager 中的线程处理和并发机制。

对于 Kotlin 用户,WorkManager 为协程提供了一流的支持。如要开始使用,请将 work-runtime-ktx 包含到您的 gradle 文件中。不要扩展 Worker,而应扩展 CoroutineWorker,后者包含 doWork() 的挂起版本。例如,如果要构建一个简单的 CoroutineWorker 来执行某些网络操作,您需要执行以下操作:

https://developer.android.com/topic/libraries/architecture/workmanager/advanced/coroutineworker?hl=zh-cn

class CoroutineDownloadWorker(
    context: Context,
    params: WorkerParameters
) : CoroutineWorker(context, params) {

    override suspend fun doWork(): Result {
        withContext(Dispatchers.IO) {
            val data = downloadSynchronously("https://www.google.com")
            saveData(data)
            return Result.success()
        }
    }
}

CoroutineWorker.doWork() 是一个“挂起”函数。

CoroutineWorker 通过取消协程并传播取消信号来自动处理停工情况。您无需执行任何特殊操作来处理停工情况。

相关文章

  • WorkManager中的线程处理

    在 WorkManager 使用入门[https://developer.android.com/topic/li...

  • 【Android】【框架】【Jetpack】【Architect

    接入 使用 原理 WorkManager中的任务运行在子线程中,WorkManager会选择根据设备的API版本使...

  • Android中的线程和线程池

    Android中的线程 线程,在Android中是非常重要的,主线程处理UI界面,子线程处理耗时操作。如果在主线程...

  • Android--多线程处理

    在Android中,UI线程(主线程)处理UI操作,工作线程处理耗时任务。下面列举4中多线程方式: Handler...

  • Android 多线程(一)

    简介 1. 线程分类 主线程(UI线程) : 处理和界面相关的事情. 子线程 : 处理耗时操作. Android中...

  • Jetpack系列-WorkManager使用和源码分析

    1 简介 WorkManager是Jetpack组件库中的一个组件,主要用于处理立即执行、长时间运行、可延迟执行的...

  • 多线程之线程属性

    线程属性 线程优先级 守护线程 线程组 处理未捕获异常的处理器 1. 线程优先级 在java中,每个线程都有一个...

  • 无标题文章

    --如何处理android多线程安全不要堵塞UI线程,不在主线程中做耗时操作的处理,可以开启子线程去执行耗时操作 ...

  • Java多线程异常处理

    线程异常处理 Java中每个线程的异常处理是相互独立的,一个线程产生的异常不会影响其他线程的正常运行。因此,也不能...

  • JetPack WorkManager 使用和分析

    WorkManager是干啥的。 WorkManager is the recommended library f...

网友评论

      本文标题:WorkManager中的线程处理

      本文链接:https://www.haomeiwen.com/subject/dvombrtx.html