如何在一个时间范围内显示Android通知

问题描述 投票:0回答:1

我想在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 job-scheduling
1个回答
1
投票

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

设备正在充电

设备连接到未计量的网络

设备空闲

在某个截止日期之前开始

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

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

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

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

© www.soinside.com 2019 - 2024. All rights reserved.