0

我之前(在这里)问过这个问题,但是它没有受到关注,我觉得这对那些选择着手处理类似问题的人来说真的很有用。

基本上,我正在实现一个为用户设置警报的应用程序,并且在我当前的尝试中,我正在使用 ACTION_SET_ALARM 意图来设置系统警报。现在这可以正常工作,但有一个例外:每当我设置警报时,它都会发出一个全新的警报,直到最终警报数据库完全充满冗余警报。

我试图弄清楚如何设置独特的闹钟,而不必完全设计我自己的闹钟应用程序。必须有一种方法可以做到这一点,只需利用原生 Android 闹钟类的某些功能即可。

到目前为止我采用的方法:

  • Android 开发者文档;

  • 几乎所有关于这个主题的论坛帖子;

  • 利用我通过搜索deskclock源代码找到的各种其他意图;

  • 导入Alarms 类,setAlarm 类。

对我来说,最后剩下的选择是使用 AlarmManager 类,但这实际上是在重新创建闹钟类,我希望这个应用程序是通用的(它可以应用于大多数闹钟应用程序),而不必依赖它自己。

任何帮助将不胜感激。

4

2 回答 2

1

必须有一种方法可以做到这一点,只需利用原生 Android 闹钟类的某些功能即可。

欢迎您提出您的意见,尽管您的意见可能需要伴随您自己的 Android 分支和您自己的移动设备系列。

首先,实际上并没有太多的“原生 Android 闹钟类”。它主要只是一个Intent动作字符串和一系列附加键。闹钟功能的实现取决于设备和用户,尽管许多人会简单地使用 Android 开源项目中的一个。

此时,您会遇到两个问题:

  1. Android开源项目的应用不支持你想要的

  2. 没有其他应用程序必须支持您想要的,因为它超出了记录的行为范围

于 2012-07-30T17:54:59.150 回答
0

您需要做的是使用 AlarmManager 广播出一个脉冲。这是让脉搏熄灭的最可靠方法。让广播接收器监听该脉冲并根据需要传递给服务或启动 Activity。在那里,您将检查您的警报条件列表并查看它们是否已满足。请注意,此时您还可以检查时间戳。是的,AlarmManager 比您可以使用的任何其他服务都可靠得多。

于 2012-07-30T18:04:10.960 回答