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

时间:2021-07-01 09:28:57

标签: android sqlite alarmmanager

我正在创建一个到期跟踪应用程序。在那,我存储了一个项目的剩余天数以使其过期。所以每天我都想将到期日期与当前日期进行比较并获得它们之间的差异。我想用我们发现的差异更新数据库中的 expirydaysleft 列。

帮我解决这个问题 想要每24小时自动更新一次数据库,这样到期日到了时,剩余的到期天数可以自动变为零

1 个答案:

答案 0 :(得分:0)

你可以创建一个类

    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,EG:每 24 小时一次。

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

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

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