一、workermanager

Android Jetpack WorkManager是一个库,它简化了后台任务管理和异步工作处理,使得开发者可以编写更易于管理、可靠且响应用户交互的应用。WorkManager可以帮助你在合适的时间执行长时间运行的任务,比如定期数据同步、清理缓存等,而不会影响用户体验。

使用WorkManager的基本步骤包括:

  1. 添加依赖:在build.gradle文件中添加implementation 'androidx.work:work-runtime-ktx:2.5.0'
  2. 创建Worker:创建一个实现了Worker接口的类,并覆盖doWork()方法来执行你的业务逻辑。

 

使用

class MyPeriodicWorker(context: Context, workerParams: WorkerParameters) : Worker(context, workerParams) {
    override fun doWork(): Result {
        // 在这里执行你的任务,例如发送网络请求、更新数据库等
        Log.e("TAG", "运行一次")
        return Result.success() // 如果任务成功完成,返回Result.success()
    }
}
/** 只运行一次的任务 **/
        val request: OneTimeWorkRequest = OneTimeWorkRequest.Builder(MyPeriodicWorker::class.java)
            .build()

        WorkManager.getInstance(applicationContext).enqueue(request)

协程的worker 

/** 协程worker **/
class MyCoroutineWorker(context: Context, workerParams: WorkerParameters) : CoroutineWorker(context, workerParams) {
    override suspend fun doWork(): Result {
        // 在这里执行你的任务,例如发送网络请求、更新数据库等
        Log.e("TAG", "协程运行一次")
        return Result.success() // 如果任务成功完成,返回Result.success()
    }
}
        val workManager = WorkManager.getInstance(applicationContext)
        // 创建输入持续时间
        val periodicRequest = PeriodicWorkRequest.Builder(
            MyCoroutineWorker::class.java,
            15, // 重复间隔为每15分钟
            TimeUnit.MINUTES
        )
            .build()
        // 提交定时任务请求
        workManager.enqueueUniquePeriodicWork(
            "workTag",
            ExistingPeriodicWorkPolicy.UPDATE,
            periodicRequest
        )

点赞(0) 打赏

评论列表 共有 0 条评论

暂无评论

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部