用户选择一个时间来通知一条消息,作为可以每天重复或仅在一周的某一天重复的提醒。以前我通过将时间设置为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);

现在,当设备处于休眠状态时,AlarmManager停止工作。我无法使用

setAndAllowWhileIdle

因为我需要重复通知消息。

现在我有了一个使用WorkerManager的选项,但是我不知道如何像在AlarmManager中那样设置时间。

PeriodicWorkRequest.Builder(SetJobWork.class,1,TimeUnit.DAYS)
.addTag(Id).setConstraints(constraints).build()

假设我需要每天下午1点运行这个任务,那么出路是什么?