我正在尝试使用AlarmManager创建警报,但是以下代码不会创建警报:
public static void scheduleAlarm(Context context, int requestCode ,
int days , int hour , int minute ) {
Calendar calendar = Calendar.getInstance();
calendar.set(Calendar.DAY_OF_WEEK , days);
calendar.set(Calendar.HOUR , hour);
calendar.set(Calendar.MINUTE, minute);
calendar.set(Calendar.SECOND , 0);
PendingIntent pi = PendingIntent.getBroadcast(context, requestCode, new Intent(context, AlarmReceiver.class), PendingIntent.FLAG_UPDATE_CURRENT);
AlarmManager am = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
am.setRepeating(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), AlarmManager.INTERVAL_FIFTEEN_MINUTES, pi);
}
答案 0 :(得分:0)
可能由于两个问题
1- setRepeating()在Android 4.4+上不精确, android:targetSdkVersion为19或更高。
2-您未使用WakefulBroadcastReceiver,我的 WakefulIntentService或您自己的WakeLock,因此设备可能掉落 在任何时间触发警报之前,请重新入睡 您的服务完成了工作。
答案 1 :(得分:0)
尝试改用此
alarmManager.setExact(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), AlarmManager.INTERVAL_FIFTEEN_MINUTES, pi)