报警设置频率高于提供的时间

时间:2016-10-29 10:36:48

标签: java android alarmmanager android-broadcast

每当用户输入MainActivity时,我使用下面的代码以43200000毫秒的间隔设置警报,并删除以前的警报。

int interval =43200000;
Intent alarmIntent = new Intent(this, AlarmReceiver.class);
pendingIntent = PendingIntent.getBroadcast(this, 0, alarmIntent, 0);
manager = (AlarmManager)getSystemService(Context.ALARM_SERVICE);
manager.cancel(pendingIntent);
manager.setRepeating(AlarmManager.RTC_WAKEUP, System.currentTimeMillis(), interval, pendingIntent);
setContentView(R.layout.activity_main);
  

问题是我每隔2分钟打开应用程序就会收到通知或警报

1 个答案:

答案 0 :(得分:0)

我建议使用这个: manager.setRepeating(AlarmManager.RTC_WAKEUP, System.currentTimeMillis() + interval, interval, pendingIntent); 第二个参数:

  

triggerAtMillis long:使用适当的时钟(取决于警报类型),警报首先应该以毫秒为单位的时间。

manual

或更好:

am.setExactAndAllowWhileIdle(AlarmManager.RTC_WAKEUP:AlarmManager.RTC, nexttime, pi);

每次在广播接收器启动和每次启动(启动设备)事件时重新启动。

<43> 43200000是12小时;)别忘了 此外,对每个毫秒变量使用long类型:  long interval = 43200000L;以防止出现一些错误。