提醒/警报的最佳方式

时间:2017-08-14 21:52:35

标签: java android

经过多次研究,我一直坚持这个问题:

用户通过setExactAndAllowWhileIdle为我的应用设置一个闹钟限制为每9分钟一次触发。

这引发了另一个问题,因为我的警报正在重复。我的广播接收器正在设置新的警报,但是如果我有2个警报,一个4:00,第二个4:05,它会被警告,触发这些警报延迟几分钟或触发它们2次而不是一次。

设备进入休眠模式后会出现问题。

有没有其他方法可以绕过这个问题? 提醒功能的其他方式?

我在Android 7.0上测试了我的应用

2 个答案:

答案 0 :(得分:0)

我认为您可以使用sqllite并创建名为timeTabel的表来存储闹钟时间,然后您将能够逐个管理它

答案 1 :(得分:0)

尝试原生Android时钟方法:

  1. 使用任何存储空间来保存和管理您的警报,例如偏好或任何类型的ContentProvider - 无关紧要

  2. 将闹钟安排在准确的时间,安排在实际时间前30-60分钟

  3. 触发闹铃时,请勿播放。只需启动前台服务,它会将前台通知发送到系统托盘(提醒用户有关警报),此类服务不受打盹模式的影响,并会保持CPU上升 3.1。将警报安排到您需要的确切时间。 3.2。理论上,前景通知不会让你的设备切换到打盹模式,所以你可以轻松处理这样的alarams 3.3。对于新API,您可以在这里找到相当不错的博客post 这将允许您使用:

  4. On API 21+ devices, new APIs allow you to set a user visible alarm via setAlarmClock();

    Documentation for setAlarmClock()

    1. 触发闹钟时 - 使用停止闹钟按钮更新您的通知,播放声音,任何您喜欢的内容

    2. 当警报完成(停止或超时)时,管理其状态并管理下一个警报状态,如果重复周期非常短 - 使用Handler重复,如果长 - 重新安排使用描述的逻辑。

    3. 也许setAlaramClock();会做所有的魔术,但前景通知+服务也应该是一个很好的解决方案。

      快乐的编码! (=