首页 > 解决方案 > 在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 操作系统正在杀死广播接收器。

在某些情况下,如果手机处于空闲/打瞌睡模式,那么警报也不起作用。

标签: androidbroadcastreceiveralarmmanagerandroid-alarms

解决方案


推荐阅读