2016-12-02 186 views
0

我目前正在开发一个android应用程序,我需要设置将在特定日期和时间触发并显示通知的持久性警报。它运行良好,但系统在重新启动时会清除所有警报。android-我需要保持在重新启动后坚持警报?

从其他的问题,我知道,如果我为创建广播接收器 BOOT_COMPLETED我可以重新武装解除警报。我的问题是:我需要保留哪些警报以便在需要时重新装备它们?

有人说我需要坚持所有的意图额外和火日期时间重新启动时重新创建挂起的意图。

也有人说,如果我只坚持了requestCode为待定的意图,重新启动后,我可以使用此代码来获取取消挂起的意图,并重整了警钟,因为当设备重新启动挂起的意图只是取消而不是已删除。

哪一个是正确的做法呢?

谢谢!

+2

“需要保留哪些警报以便在需要时重新装备它们?” - 您首先使用相同的信息安排警报。 “其他人说,如果我只坚持待定意图的请求代码,在重新启动后,我可以使用此代码获取取消的待处理意图并重新设置警报,因为当设备重新启动时,待处理意图只是取消而不是删除” - 总之,没有。 AFAIK,'PendingIntent'无法在重新启动后存活。 – CommonsWare

回答

0

PendingIntents在重新启动后不会持续,因此为了安全起见,只需在BroadcastReceiver中重新启动警报,并使用第一次初始化警报时所做的所有附加功能,并保持请求代码相同。

+0

此外,如果您对请求代码的功能感兴趣,请查看http://stackoverflow.com/questions/21526319/whats-requestcode-used-for-on-pendingintent –