我有一个关于AlarmManager和BroadcastReceiver的问题!
我想使用AlarmManager每15分钟更新一些数据(这在代码中并不是这样,因为我仍在努力使功能正常工作),但我不太理解发生了什么事情。
每当onReceive方法被定时器调用时,它会一次性被快速地调用3-5次,LogCat消息会被写入3-5次。我的代码有问题吗?
代码:
MainActivity类中的方法:
我想使用AlarmManager每15分钟更新一些数据(这在代码中并不是这样,因为我仍在努力使功能正常工作),但我不太理解发生了什么事情。
每当onReceive方法被定时器调用时,它会一次性被快速地调用3-5次,LogCat消息会被写入3-5次。我的代码有问题吗?
代码:
MainActivity类中的方法:
private void setCloseByChecker() {
AlarmManager alarmManager = (AlarmManager) getSystemService(ALARM_SERVICE);
Calendar cal=Calendar.getInstance();
Intent intent = new Intent(this, CloseByReceiver.class);
PendingIntent pendingIntent = PendingIntent.getBroadcast(
this.getApplicationContext(), 0, intent, PendingIntent.FLAG_UPDATE_CURRENT);
alarmManager.setRepeating(AlarmManager.RTC_WAKEUP,
cal.getTimeInMillis() + 15000, 15000, pendingIntent);
}
BroadcastReceiver
类:
@Override
public void onReceive(Context context, Intent intent) {
Log.i("hello","hello");
}
onReceive
将不会被多次调用。alarmManager.setRepeating(AlarmManager.RTC_WAKEUP, System.currentTimeMillis() + 15000, 15000, pendingIntent);
- zeeali