如何在一段时间内显示安卓通知



我想在 8:00 到 16:00 之间每 15 分钟显示一次通知。这是代码:

Calendar calendar = Calendar.getInstance();
Calendar calendarStartOfTheDay = Calendar.getInstance();
Calendar calendarEndOfTheDay = Calendar.getInstance();
calendarStartOfTheDay.set(Calendar.HOUR_OF_DAY, 8);
calendarStartOfTheDay.set(Calendar.MINUTE, 0);
calendarStartOfTheDay.set(Calendar.SECOND, 0);
calendarEndOfTheDay.set(Calendar.HOUR_OF_DAY, 16);
calendarEndOfTheDay.set(Calendar.MINUTE, 0);
calendarEndOfTheDay.set(Calendar.SECOND, 0);
AlarmManager alarmManager = (AlarmManager) context.getSystemService(ALARM_SERVICE);
if (alarmManager != null && calendar.getTimeInMillis() > calendarStartOfTheDay.getTimeInMillis() && calendar.getTimeInMillis() < calendarEndOfTheDay.getTimeInMillis()) {
alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis() + 15 * 60 * 1000, AlarmManager.INTERVAL_FIFTEEN_MINUTES, pendingIntent);
}

除了在notificationManager.notify()之前检查当前时间之外,是否有解决方案 如果这是唯一的解决方案,它会在夜间耗尽太多电池吗?

这可以通过 android 中的作业调度程序来完成。由于警报管理器已过时,并且 不再使用。作业计划程序还为您提供了计划任务以在特定条件下运行的灵活性, 如:

设备正在充电

设备连接到未按流量计费的网络

设备处于空闲状态

在某个截止日期之前开始

在预定义的时间窗口内开始,例如,在下一个小时内

在最小延迟后启动,例如,等待至少 10 分钟

您可以点击此链接来实现此

https://medium.com/google-developers/scheduling-jobs-like-a-pro-with-jobscheduler-286ef8510129

最新更新