经过多次研究,我一直坚持这个问题:
用户通过setExactAndAllowWhileIdle为我的应用设置一个闹钟限制为每9分钟一次触发。
这引发了另一个问题,因为我的警报正在重复。我的广播接收器正在设置新的警报,但是如果我有2个警报,一个4:00,第二个4:05,它会被警告,触发这些警报延迟几分钟或触发它们2次而不是一次。
设备进入休眠模式后会出现问题。
有没有其他方法可以绕过这个问题? 提醒功能的其他方式?
我在Android 7.0上测试了我的应用
答案 0 :(得分:0)
我认为您可以使用sqllite并创建名为timeTabel的表来存储闹钟时间,然后您将能够逐个管理它
答案 1 :(得分:0)
尝试原生Android时钟方法:
使用任何存储空间来保存和管理您的警报,例如偏好或任何类型的ContentProvider - 无关紧要
将闹钟安排在准确的时间,安排在实际时间前30-60分钟
触发闹铃时,请勿播放。只需启动前台服务,它会将前台通知发送到系统托盘(提醒用户有关警报),此类服务不受打盹模式的影响,并会保持CPU上升 3.1。将警报安排到您需要的确切时间。 3.2。理论上,前景通知不会让你的设备切换到打盹模式,所以你可以轻松处理这样的alarams 3.3。对于新API,您可以在这里找到相当不错的博客post 这将允许您使用:
On API 21+ devices, new APIs allow you to set a user visible alarm via setAlarmClock();
Documentation for setAlarmClock()
触发闹钟时 - 使用停止闹钟按钮更新您的通知,播放声音,任何您喜欢的内容
当警报完成(停止或超时)时,管理其状态并管理下一个警报状态,如果重复周期非常短 - 使用Handler
重复,如果长 - 重新安排使用描述的逻辑。
也许setAlaramClock();
会做所有的魔术,但前景通知+服务也应该是一个很好的解决方案。
快乐的编码! (=