3

我正在使用PendingIntentwithAlarmManager和 aBroadcastReceiver在用户指定的时间显示提醒。我正在使用NotificationManager.

在设置通知之前,我希望按钮说“设置提醒”,在设置通知之后,我希望按钮说“更改提醒”。向用户显示通知后,按钮应再次显示“设置提醒”

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

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

现在这工作并且按钮文本正确显示。但我发现,一旦显示通知,除非我明确检索PendingIntent并取消它,否则它暂时不会被删除。所以有一段时间,按钮仍然显示“更改提醒”。

那么假设除非我明确取消 PendingIntent 它仍然存储在内存中的某个位置以进行垃圾收集,这是正确的吗?

4

1 回答 1

1

那么假设除非我明确取消 PendingIntent 它仍然存储在内存中的某个位置是正确的吗

是的。Android 缓存PendingIntent对象。AFAIK,他们会一直待着,直到进程终止。

于 2012-10-14T17:21:20.163 回答