[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()
 
相关推荐
红藕香残玉簟秋1 小时前
【安卓学习】配置开发环境
android·学习
用户69371750013841 小时前
Android R8 深度解析:为什么 Google 用R8取代 ProGuard?
android·android studio·android jetpack
seabirdssss2 小时前
联想拯救者Y7000P上使用ADB无法监听到通过USB连接的安卓设备
android·adb
2501_916008892 小时前
iPhone 上怎么抓 App 的网络请求,在 iOS 设备上捕获网络请求
android·网络·ios·小程序·uni-app·iphone·webview
工业甲酰苯胺2 小时前
PHP闭包中static关键字的核心作用与底层原理解析
android·开发语言·php
Kapaseker3 小时前
解析 Compose 的核心概念 remember
android·kotlin
秋知叶i4 小时前
【Android Studio】Kotlin 第一个 App Hello World 创建与运行|超详细入门
android·kotlin·android studio
锋风Fengfeng4 小时前
远程服务器运行Android Studio开发aosp源码
android·服务器·android studio
fundroid4 小时前
从零构建用于 Android 开发的 MCP 服务:原理、实践与工程思考
android·ai编程·mcp