我正在Android中开发一个警报应用程序。流程非常简单,我只是创建一个 PendingIntent ,然后在 AlarmManager 中调用 setExact()方法,如下所示。
($ 2) :: (a -> b) -> b
经过一些测试,我意识到使用上面的代码片段,我只能设置一个闹钟,因为我将 pendingIntent 的 requestCode 设置为零,如果我设置了另一个闹钟将 requestCode 设置为0,然后它将覆盖前一个。有没有办法解决这个问题,而无需更改 requestCode ?我想也许旗帜可以帮助我,但我没有找到一个不会覆盖先前pendingIntent的旗帜。
我知道明显的解决方案是将0更改为另一个int然后跟踪我的所有int,选择一个未使用的int。如果我刚刚启动项目,那么这个解决方案就没问题,但是我已经处于中间位置并且我使用预定义的枚举作为请求代码。很难改变这种机制并跟踪个别内注,这就是为什么我在询问是否有一种方法可以在注册具有相同 requestCode 的新内容时不覆盖pendingIntent。提前谢谢。