android - 在android中经过一段时间后警报不起作用
问题描述
Calendar calendars = Calendar.getInstance();
calendars.set(Calendar.HOUR_OF_DAY, hour);
calendars.set(Calendar.MINUTE, min);
calendars.set(Calendar.SECOND, 0);
calendars.set(Calendar.MILLISECOND, 0);
calendars.set(Calendar.AM_PM, timezone);
PendingIntent pendingIntent = PendingIntent.getBroadcast(getBaseContext(), currentTime, intent, PendingIntent.FLAG_UPDATE_CURRENT);
if (Build.VERSION.SDK_INT < 23) {
if (Build.VERSION.SDK_INT >= 19) {
alarmManager.setExact(AlarmManager.RTC_WAKEUP, calendars.getTimeInMillis(), pendingIntent);
} else {
alarmManager.set(AlarmManager.RTC_WAKEUP, calendars.getTimeInMillis(), pendingIntent);
}
} else { alarmManager.setExactAndAllowWhileIdle(AlarmManager.RTC_WAKEUP, calendars.getTimeInMillis(), pendingIntent);
}
在我的应用程序中,如果我在一小时内设置警报,那么它工作正常,但长时间无法正常工作。
我对我们面临的警报问题进行了很多搜索,发现在最新的 android 更新中,如果其他任务需要内存或处于低电池状态或无缘无故,android 操作系统正在杀死广播接收器。
在某些情况下,如果手机处于空闲/打瞌睡模式,那么警报也不起作用。
解决方案
推荐阅读
- javascript - 如何在输入的 onChange 事件中获取旧值?
- ios - AppDelegate.m 文件未在 Xcode 中显示
- flutter - 如何设置容器内的属性以获得以下形状?
- regex - Fluentd 解析不同的日志格式
- javascript - WebSocket 连接需要很长时间并且失败
- kubernetes - 每两个半小时运行一次 cronjob
- node.js - java.lang.RuntimeException:无法创建服务 io.flutter.plugins.firebasemessaging.FlutterFirebaseMessagingService
- javascript - Discord.js setPresence 未设置
- angular - 如何在 Jest 中为 Angular 中的 Http 拦截器编写单元测试
- python - 将 JSON 转换为 panda 数据框的问题