【发布时间】:2016-12-02 22:30:12
【问题描述】:
我目前正在开发一个 Android 应用程序,我需要在其中设置将在特定日期和时间触发并显示通知的持久警报。它运行良好,但系统在重新启动时清除了所有警报。
从其他问题我知道,如果我为BOOT_COMPLETED 创建一个BroadcastReceiver,我可以重新设置已取消的警报。我的问题是:我需要保留哪些关于这些警报的信息以便在需要时重新武装它们?
有人说我需要保留所有 Intent 额外内容和触发日期时间,以便在重新启动时重新创建 PendingIntent。
其他人说如果我只为PendingIntent保留requestCode,重启后我可以使用此代码获取取消的PendingIntent并重新设置警报,因为当设备重启时PendingIntent的只是取消而不是删除。
哪一种方法是正确的?
【问题讨论】:
-
“我需要保留哪些关于这些警报的信息,以便在需要时重新武装它们?” -- 与您最初用于安排警报的信息相同。 “其他人说,如果我只保留 Pending Intent 的 requestCode,重启后我可以使用此代码获取取消的 Pending Intent 并重新发出警报,因为当设备重新启动时,Pending Intent 只是被取消而不是删除”-总之,没有。 AFAIK,
PendingIntent无法在重启后存活。
标签: android android-intent alarmmanager alarm android-alarms