在安卓中进行通知调度

4

我需要能够在将来的不同时间安排多个通知。

我尝试使用AlarmManager实现这一点,但由于以下原因,它并不适用。从AlarmManager.set()方法中可以看到:"如果已经为此Intent安排了一个闹钟(通过filterEquals(Intent)定义两个Intent的相等),那么它将被删除并替换为这个新的闹钟。"

你猜怎么着,发送的Intents是相等的,除了不同的Extras(但这些不计入filterEquals)。

那么,我该如何安排多个通知,即使我的应用程序被杀死时仍然会显示(这也是我尝试使用AlarmManager的原因)?

谢谢。


1
仅供以后阅读此问题的读者参考:您可能还可以使“Intents”不同,而不会干扰应用程序逻辑。对于基于组件的“Intent”(例如new Intent(this, MyClass.class);),这一点尤其正确。对于这些,“action”和“data”不是路由的一部分,因此您可以在其中填写某些内容以区分一个与另一个。 - CommonsWare
3个回答

4

首先确定哪个事件会先发生,然后安排它的时间表。当您的事件触发时,请安排下一个事件的发生时间。


3

我正在解决同样的问题,并决定不使用AlarmManager。在测试环境中,预定通知工作得很好,但实际上用户只收到了前几个通知,然后就停止了,就好像闹钟被取消了一样。

我决定使用一个每15分钟运行一次的服务,并发送过期事项的通知。这样,即使发生了某些情况导致进程停止,该过程至少会再次启动,而如果闹钟由于某种原因被取消,则不会重新创建。


1

如果你想使用多种通知方式,可以为不同的时间通知使用不同的requestCode。

     notificationManager.notify(request_code_1,notification);
     notificationManager.notify(requestCode_2,notification);

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接