[Android]使用WorkManager循环执行任务

使用WorkManager每隔30分钟执行一次任务

这种方式最低适配到SDK=33

Kotlin 复制代码
implementation("androidx.work:work-runtime-ktx:2.9.1")
Kotlin 复制代码
    implementation("androidx.work:work-runtime-ktx:2.9.1")

package com.mofsaas.box_n.ui
import android.content.Context
import androidx.work.*
import androidx.work.ExistingPeriodicWorkPolicy
import androidx.work.WorkManager
import androidx.work.WorkerParameters
import java.util.Calendar
import java.util.concurrent.TimeUnit

/**
 * 监听设备的时间,获取当前是几点钟了。循环获取,每30分钟获取一次时间
 * reMinutes: 重复回调时间(单位:分钟)
 * */
class TimeChecker(private val context: Context, private val reMinutes: Long, private val callback: (String) -> Unit) {

    fun start() {
        val workRequest = PeriodicWorkRequestBuilder<TimeWorker>(reMinutes, TimeUnit.MINUTES)
            .build()

        WorkManager.getInstance(context).enqueueUniquePeriodicWork(
            "TimeWorker",
            ExistingPeriodicWorkPolicy.KEEP,
            workRequest
        )
    }

    inner class TimeWorker(appContext: Context, workerParams: WorkerParameters) : Worker(appContext, workerParams) {
        override fun doWork(): Result {
            val currentTime = Calendar.getInstance().time.toString()
            callback(currentTime)
            return Result.success()
        }
    }
}
Kotlin 复制代码
// 使用示例
val timeChecker = TimeChecker(context) { currentTime ->
    println("Current time: $currentTime")
    // 在这里执行你的逻辑
}

timeChecker.start()
 
相关推荐
全是操作12 分钟前
安卓学习笔记-数据存储
android·笔记·学习
zhifanxu13 分钟前
Android 异步编程中协程的完整实战示例
android·kotlin
召田最帅boy1 小时前
基于URL弹窗的图片链接生成功能技术实现
android·java·javascript
橙子199110162 小时前
Kotlin 中的数据类型有隐式转换吗?为什么?
android·开发语言·kotlin
一起搞IT吧9 小时前
Camera相机人脸识别系列专题分析之一:人脸识别系列专题SOP及理论知识介绍
android·图像处理·人工智能·数码相机
feifeigo12311 小时前
Docker-compose 编排lnmp(dockerfile) 完成Wordpress
android·docker·容器
鸿蒙布道师12 小时前
HarmonyOS 5 应用开发导读:从入门到实践
android·ios·华为·harmonyos·鸿蒙系统·huawei
JK0x0716 小时前
代码随想录算法训练营 Day58 图论Ⅷ 拓扑排序 Dijkstra
android·算法·图论
非凡ghost16 小时前
摄像头探测器APP:守护隐私的防偷拍利器
android·智能手机·生活·软件需求
Lotay_天天1 天前
Android 缓存应用冻结器(Cached Apps Freezer)
android·缓存