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操作系统会杀死广播接收器。
在某些情况下,如果手机处于空闲/休眠模式,那么时间也会发出警报。