[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()
 
相关推荐
.豆鲨包几秒前
【Android】OkHttp的使用及封装
android·java·okhttp
黄林晴3 分钟前
重启不用输 PIN!Android 17 终于把 SIM 卡安全做明白了
android
2501_9159214319 分钟前
uni-app一键生成iOS安装包并上传TestFlight全流程
android·ios·小程序·https·uni-app·iphone·webview
studyForMokey29 分钟前
【Android面试】四大组件专题 todo
android·面试·职场和发展
qq_3537375440 分钟前
网站 Favicon 获取 API 技术实现指南
android
stevenzqzq1 小时前
Android Navigation 组件页面跳转方法说明
android·compose
Kapaseker1 小时前
Compose 响应式布局要变天—入门 FlexBox
android·kotlin
.豆鲨包1 小时前
【Android】HttpURLConnection解析
android·java
亘元有量-流量变现2 小时前
鸿蒙、安卓、苹果音频设备技术深度解析与开发实践
android·wpf·harmonyos·亘元有量·积分墙
冬奇Lab16 小时前
相机拍照流程:从快门按下到JPEG存储的完整旅程
android·音视频开发·源码阅读