1
我正在制作一个使用AlarmManager.setInexactRepeating()方法的应用程序,该方法将PendingIntent作为参数。活动重新启动后,等待的意图为空
我通过调用我的setAlarm()方法
public void setRepeatingAlarm() {
Intent intent = new Intent(this, AlarmReceiver.class);
String url = getAssembledUrl();
intent.putExtra("url", url);
pendingIntent = PendingIntent.getBroadcast(this, 0, intent, PendingIntent.FLAG_UPDATE_CURRENT);
alarmManager.setInexactRepeating(AlarmManager.RTC_WAKEUP, System.currentTimeMillis(), interval, pendingIntent);
}
启动这个和stopAlarm停止()
private void stopRepeatingAlarm() {
alarmManager.cancel(pendingIntent);
pendingIntent.cancel();
}
作品就好了。但是,当活动被破坏,并且用户决定停止警报时,显然等待的意图为空,因为它是在当前活动期间未调用的setRepeatingAlarm()方法中创建的。
什么是解决这个问题的正确方法?
我可以在Activity.onCreate()中创建待定的意图,并且可以解决这个问题,但是我将无法再次启动警报,因为挂起的意图被取消并需要重新创建(我想,除非有办法检查的意图被取消了,我不知道)
有人吗? hmmmmm – urSus 2012-08-07 12:56:36