警报未创建

时间:2019-09-01 07:55:54

标签: java android alarmmanager

我正在尝试使用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);

}

2 个答案:

答案 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)