【问题标题】:AlarmManager setRepeating disregards the intervalAlarmManager setRepeating 忽略间隔
【发布时间】:2012-02-14 10:47:12
【问题描述】:

我使用此代码在我们的业务应用程序中设置警报:

private void setupAlarm() {
    final Context c = getApplicationContext();
    final AlarmManager alarm = 
        (AlarmManager) c.getSystemService(Context.ALARM_SERVICE);
    final Intent i = new Intent(c, AlarmReceiver.class);
    final PendingIntent sender = 
         PendingIntent.getBroadcast(c, 0, i, PendingIntent.FLAG_CANCEL_CURRENT);
    final long startFromNow = System.currentTimeMillis()+10000;
    final long timer = 5*60*1000;
    alarm.setRepeating(AlarmManager.RTC_WAKEUP, startFromNow, timer, sender);
}

我不明白为什么不遵守警报间隔。第一个警报在 10 秒后开始(如预期),之后每隔 2 分钟和一点(122 秒到 127 秒)开始,这是错误的。间隔是5分钟,还是我错了?

我在一个更简单的应用程序中使用了这个确切的代码:一个设置重复警报的活动,接收器只创建一个日志。它在那里工作。

是什么让 AlarmManager 的行为如此不同? 我尝试过:

  • 使用set() 并在警报接收器中使用另一个set() 5 分钟以上:2 分钟启动
  • 使用setInexactRepeating() 代替setRepeating():2 分钟后启动

任何见解都会有所帮助。谢谢!

【问题讨论】:

    标签: android alarmmanager


    【解决方案1】:

    立即想到的建议 - 确保您没有在其他地方设置具有相同意图和不同值的警报。意图不必是同一个对象,请参阅 AlarmManager 中的设置方法文档。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-04-05
      • 1970-01-01
      相关资源
      最近更新 更多