如何每24小时更新一次Android SQLite数据库



我正在创建一个过期跟踪应用程序。在这种情况下,我必须存储物品的剩余天数以使其过期。所以我每天都想把到期日和当前日期进行比较,并得到它们之间的差异。我想用我们发现的差异更新数据库中的expirydaysleft列。

帮我做这个希望每24小时自动更新一次数据库,以便在到期日到达时,剩余的到期日可以自动变为零

您可以创建一个类

class UpdateDatabaseWorker(context: Context, workerParams: WorkerParameters) : Worker(context, workerParams) {
override fun doWork(): Result {
updateDatabase()
return Result.success()
}

private fun updateDatabase() {
// do the necessary updates here - all the logic needed
}
}

然后您可以调用PeriodicWorkRequest,例如:每24小时调用一次。

val periodicWorkRequest = PeriodicWorkRequestBuilder<UpdateDatabaseWorker>(24, TimeUnit.HOURS).build()

WorkManager.getInstance().enqueue(periodicWorkRequest)

为了停止执行定期工作,需要明确取消:

WorkManager.getInstance().cancelWorkById(periodicWorkRequest.id)

最新更新