CountDownTimer + WakeLock 方案, Android 休眠状态下不出提示音

2020-04-21 13:35:15 +08:00
 treePerson
没有其他要求,只要倒计时结束时能出提示音就可以了
现在的情况是,灭屏状态下到时间没有反应,直到手动亮屏,迟来的提示音才被激活
除非在亮屏或保持 adb 连线的状态下才能被正确激活
加了 WakeLock,并没什么作用
对于这样的问题还有其他什么思路吗?
一般是 wakelock 的原因,还是 CountDownTimer 的原因?
不考虑加系统级的 POWER 权限,因为要上架。
也不考虑 8.0 以下的系统。
4515 次点击
所在节点    Android
4 条回复
KINGOD
2020-04-21 14:36:21 +08:00
试试 AlarmManager.setExactAndAllowWhileIdle(int type, long triggerAtMillis, PendingIntent operation)
有些限制,比如平时 1min 只能触发一个,DeviceIdle 模式下 15min 触发一个,等等,可以看下文档。
treePerson
2020-04-21 14:46:00 +08:00
@KINGOD
谢谢,将 CountDownTimer 换成 AlarmManager 的思路我也有了,正在研究。很高兴提前获知这是一个值得探索的方向。不过我也看到了许多关于 AlarmManager 不够精确的言论,不知道最终能否成功实现。我的 app 其实对触发次数没有需求,只要一次就可以了,不过对精确性是有需求的。可以简单的理解为闹钟软件,而且不用考虑关机、重启的情况。
另外,目前只在华为的设备上做过测试,不知道厂商对这方面有没有特别设定。下面我会写一个测试 app 试试各种方案。
helloworldchao
2020-04-21 21:28:19 +08:00
可以试试在 foreground service 中做这个功能,提高一下 APP 在系统中的权重,减少被限制的情况
treePerson
2020-04-21 22:19:09 +08:00
@helloworldchao 不过目前用的就是前台服务

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/664613

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX