当前位置: 首页 > 知识库问答 >
问题:

Android-我需要保留什么,以保持警报后重新启动?

惠志
2023-03-14

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

从其他问题中,我知道如果我为boot_completed创建一个broadcastreceiver,我可以重新启动已取消的警报。我的问题是:关于那些警报,我需要保留哪些信息,以便在需要时重新武装它们?

有些人说,我需要持久化所有intent附加项和fire日期时间,以便在重新引导时重新创建pendingintent

其他人说,如果我只保留requestcodependingintentrequestcode,在重新启动后,我可以使用此代码获取已取消的pendingintent并重新启动警报,因为当设备重新启动时,pendingintent只是取消而不是删除。

哪一种方法是正确的?

共有1个答案

裴心水
2023-03-14

重新启动后,PendingIntents将不会继续存在,所以为了安全起见,只需在BroadcastReceiver中使用首次初始化警报时所做的所有附加意图重新启动警报,并保持requestcode不变。

 类似资料:
  • 问题内容: 我将ReactJs与Redux一起使用,在一些教程和代码上,我看到人们建议并使用normalizr 保持状态平坦 。但是,保持平坦的真正优势是什么?如果没有,我会遇到任何问题吗?有必要吗 ? 问题答案: 三个主要原因: 不变地更新嵌套的Javascript对象通常会导致难以维护的丑陋代码,除非您使用实用程序库来打包过程 不变地更新嵌套数据要求您返回嵌套层次结构中所有项目的新副本。由于组

  • 问题内容: 我想创建带有通知消息的广播AlarmManager(重复)。我从Pickers中传递日历对象。如果我不重启设备,它将正常工作。但是,当我重新启动设备时,您知道我的calander对象将为null。重新启动后如何管理重复警报以及如何保留日历时间表?感谢您的想法。 问题答案: 您需要使用并将其设置为响应消息。例如 在清单中注册您的 在代码中处理消息 MyBootReceiver.java

  • 问题内容: 我的下拉列表中有很多复选框,因此此容器具有滚动功能。但是,当我单击任何复选框时,它会自行选择\取消选择,然后更改状态。 因此,问题在于重新渲染后,此容器又回到了顶部。是否可以在渲染后保持容器的滚动而不将其保存到状态? 问题答案: 您可以在提交阶段之前保存滚动位置的“快照”。 getSnapshotBeforeUpdate()显示您正在寻找的种类。 该文档示例将当前滚动位置保存在生命周期

  • 请考虑以下代码: 忽略所有axios请求: login.js 此页面通过将loggedIn更改为true并将currentUser更改为“fa”来更新GlobalContext。 profile.js 这将获取状态并记录它。 下面是reducer.js和globalcontext.js: 一切工作都很好,一旦我登录,我就会被重定向到主页,就像我应该做的那样,正确的状态正在被记录。 但是,一旦我刷新

  • 我在我的应用程序中使用Jasper报表生成报表。我还提供了下载PDF/CSV格式报告的设施。但我面临的问题是,每当我上传一个新的war文件(无论是否对用于设计报告的JRXML文件进行了更改)时,我都必须启动/停止tomcat服务器。除非我这样做,否则我无法生成报告。没有看到日志,没有发生任何事情,也没有生成报告。当我重新启动服务器时,一切都像一个魅力一样开始工作。生成报告,其他一切都很好。为什么会

  • 问题内容: 用Javadoc说: 如果使用该注释类型对类型进行注释,则编译器需要生成错误消息,除非… 为什么不是还是不够的,像。 问题答案: 该批注有两个目的。关于编译器和它产生的错误的确足以拥有一个, 因为在这方面它仅影响带有注释的类。 但是,它还有第二个目的,即记录以下事实:确实打算将其用作功能性接口,以及以这种方式使用它的可能性不仅是巧合,例如,并非旨在以这种方式使用。 因此,它带有注释并具