gpt4 book ai didi

java - 如何在特定时间排队 WorkManager OneTimeWorkRequest

转载 作者:搜寻专家 更新时间:2023-11-01 08:20:38 25 4
gpt4 key购买 nike

我有一个场景,我必须在特定时间使用 WorkManager 向用户发出通知。

我如何在特定时间安排工作,即使用户强制终止应用程序,它也应该显示。或应用未运行。

我当前的代码如下:

Data d = new Data.Builder().putInt(IntentConstants.SCHEDULE_ID, scheduleData.getScheduleID()).build();
OneTimeWorkRequest compressionWork =
new OneTimeWorkRequest.Builder(ScheduleWorker.class)
.setInputData(d)
.build();
WorkManager.getInstance().enqueue(compressionWork);

最佳答案

我想我已经找到了一个简单有效的解决方案。它 100% 有效。

我们必须以毫秒为单位获取当前时间,并需要特定时间以毫秒为单位触发它,然后您必须计算特定时间 - 当前时间。

我有我的解决方案(下面的工作代码):

Data d = new Data.Builder()
.putInt(IntentConstants.SCHEDULE_ID, scheduleData.getScheduleID())
.build();

long currentTime= System.currentTimeMillis();
long specificTimeToTrigger = c.getTimeInMillis();
long delayToPass = specificTimeToTrigger - currentTime;

OneTimeWorkRequest compressionWork =
new OneTimeWorkRequest.Builder(ScheduleWorker.class)
.setInputData(d)
.setInitialDelay(delayToPass, TimeUnit.MILLISECONDS)
.build();

WorkManager.getInstance().enqueue(compressionWork);

主要逻辑在delayToPass = currentTime (in Millis) - specificTimeToTrigger (in Millis)

关于java - 如何在特定时间排队 WorkManager OneTimeWorkRequest,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51693827/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com