用户选择通知消息的时间作为提醒,该时间可以每天或仅在一周中的某天重复。以前,我通过将时间设置为AlarmManager来完成此任务
Calendar calSet= Calendar.getInstance();
//calSet.set(Calendar.DAY_OF_WEEK, dayOfWeek); for a particular day of the week
calSet.set(Calendar.HOUR_OF_DAY, hrs));
calSet.set(Calendar.MINUTE, min));
calSet.set(Calendar.SECOND, 00);
calSet.set(Calendar.MILLISECOND, 00);
alarmManager.setInexactRepeating(AlarmManager.RTC_WAKEUP, calSet.getTimeInMillis(), AlarmManager.INTERVAL_DAY, pendingIntent);
现在,当设备处于Doze位置时,AlarmManager停止工作。我无法使用setAndAllowWhileIdle,因为我需要重复通知消息。
现在,我有一个使用WorkerManager的选项,但是我不知道如何像在AlarmManager中那样设置时间
PeriodicWorkRequest.Builder(SetJobWork.class,1,TimeUnit.DAYS)
.addTag(Id).setConstraints(constraints).build()
假设我需要每天下午1:00运行任务,出路是什么。
答案 0 :(得分:0)
现在我有一个使用WorkerManager的选项,但是我不知道如何像在AlarmManager中那样设置时间
WorkManager
不支持您的情况。
我不能使用setAndAllowWhileIdle,因为我需要重复通知消息。
作为处理上一个警报的setAndAllowWhileIdle()
的一部分,您可以通过调用PendingIntent
手动安排下一个警报来重复操作。