为什么警报不会在每个Android版本的设备上每天触发特定时间?

时间:2017-10-27 06:36:31

标签: java android calendar alarmmanager android-6.0-marshmallow

我正在使用闹钟管理器类。我正在设置特定持续时间的警报。如每周或每月,所以,如果我想设置为每月然后我采取一个循环30天和每个执行循环,我正在创建新的警报并设置为每天*循环编号。

代码问题是,如果移动设备没有待机,它会首次出现。否则不会发生其他警报。请帮忙。

我的代码如下。

 for (int i = 0; i <= remdays; i++) {
        calendar = Calendar.getInstance(); 
        calendar.set(Calendar.HOUR_OF_DAY, 8);
        calendar.set(Calendar.MINUTE, 00);
        calendar.set(Calendar.SECOND, 00);
        calendar.add(Calendar.DATE, i);
        alarmMgr = (AlarmManager) context.getSystemService(Context.ALARM_SERVICE);
            Intent intent = new Intent(context, AlarmReceiver.class);
            alarmIntent = PendingIntent.getBroadcast(context, i, intent, PendingIntent.FLAG_UPDATE_CURRENT);//
           // alarmMgr.setExactAndAllowWhileIdle(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), alarmIntent);
            if (android.os.Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP_MR1) {
                //alarmMgr.setAlarmClock(new AlarmManager.AlarmClockInfo(calendar.getTimeInMillis(), alarmIntent),alarmIntent);
                alarmMgr.setExactAndAllowWhileIdle(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), alarmIntent);
            } else {
                alarmMgr.setExact(AlarmManager.RTC_WAKEUP, calendar.getTimeInMillis(), alarmIntent);
            }
  }

0 个答案:

没有答案