用户选择一个时间来通知一条消息,作为可以每天重复或仅在一周的某一天重复的提醒。以前我通过将时间设置为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点运行这个任务,那么出路是什么?

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐