何时PendingIntent被处置/删除?

时间:2012-10-14 15:46:23

标签: java android android-intent alarmmanager android-pendingintent

我正在使用PendingIntent以及AlarmManagerBroadcastReceiver来在用户指定的时间显示提醒。我正在使用NotificationManager显示提醒。

在设置通知之前,我想要一个按钮来说明“设置提醒”,然后在设置通知后我希望按钮说明“更改提醒”。一旦向用户显示通知,该按钮应再次显示“设置提醒”

我正在使用相同的意图,上下文和相同的唯一ID(myUniqueId)创建相同的PendingIntent,以检查PendingIntent是否处于活动状态。

Intent intent = new Intent(context, ReminderReceiver.class);
boolean reminderActive = (PendingIntent.getBroadcast(context, myUniqueId, intent, PendingIntent.FLAG_NO_CREATE) != null);

现在这样可以正常显示按钮文本。但我发现,只要显示通知,除非我明确检索相同的PendingIntent并取消它,否则 NOT 会被删除一段时间。所以有一段时间,按钮仍然显示“Change Reminder”。

因此,假设除非我明确取消PendingIntent,它仍然存储在内存中的某处以进行垃圾回收,这是正确的吗?

1 个答案:

答案 0 :(得分:1)

  

因此,假设除非我明确取消PendingIntent,它仍然存储在内存中的某处

,这是正确的吗?

是。 Android缓存PendingIntent个对象。 AFAIK,他们将一直闲逛直到该过程终止。