AlarmManager间隔时间更新无法正常工作

时间:2017-03-11 06:43:42

标签: android alarmmanager

在阅读完所有质量保证后,我没有得到任何适当的解决方案。我有2个问题 1.即使我只在清单中注册我的接收器,警报也会触发两次。(不是通过代码)
2.当我更新闹钟的间隔时间时,它会随机发射

这是我设置闹钟的方法

public void AlarmCall(int min) {

Intent intent = new Intent(context, AlarmReceiver.class);
PendingIntent pintent = PendingIntent.getBroadcast(context,0 , intent, 0);
alarm = (AlarmManager)context.getSystemService(Context.ALARM_SERVICE);
cancelAlarm(alarm,pintent);
    if(Build.VERSION.SDK_INT<18) {
        alarm.set(AlarmManager.RTC_WAKEUP, 1000 * 60 * min, pintent);
      }
    else if(Build.VERSION.SDK_INT>=19 && Build.VERSION.SDK_INT<=22)
    {             alarm.setRepeating(AlarmManager.RTC_WAKEUP,System.currentTimeMillis(), 1000*60*min, pintent);
    }
    else if(Build.VERSION.SDK_INT>=23)
    {         alarm.setExactAndAllowWhileIdle(AlarmManager.RTC_WAKEUP,1000*60*min,pintent);
    }
}

取消闹钟的方法:

public void cancelAlarm(AlarmManager alarm,PendingIntent p)
{
alarm.cancel(p);
Log.d("Alarm","Alarm Cancle");
}

在我的项目应用程序类中我必须以10分钟的时间间隔启动警报并且它工作正常,根据用户输入值我需要更新时间间隔。
所以我用int min输入值调用这个方法并取消第一个报警。 但是在棉花糖中它每隔5秒发射一次,而kitkat棒棒糖会发射randmoly。
甚至用setExact()方法检查

0 个答案:

没有答案