Android Wakelock vs Alarm-高效轮询数据

Android Wakelock vs Alarm-高效轮询数据,android,bluetooth,Android,Bluetooth,我正在开发一个Android应用程序,需要经常检查数据。对于这个问题的上下文,我认为这无关紧要,但是,我要求设备每隔一段时间给我一次蓝牙数据 显然Android设备可以进入睡眠模式。。。因此,即使我的“嘿!有新数据吗!?”代码作为意向服务运行,当Android手机/平板电脑决定要进入睡眠状态时,该过程显然不会运行 在了解了以上内容后(是的,我是一个noob),我的方法是在启动蓝牙数据服务时获得一个CPU唤醒锁。。。无限期地坚持下去。这似乎是可行的,但它似乎真的锤打电池寿命 所以,经过大量的谷歌搜

我正在开发一个Android应用程序,需要经常检查数据。对于这个问题的上下文,我认为这无关紧要,但是,我要求设备每隔一段时间给我一次蓝牙数据

显然Android设备可以进入睡眠模式。。。因此,即使我的“嘿!有新数据吗!?”代码作为意向服务运行,当Android手机/平板电脑决定要进入睡眠状态时,该过程显然不会运行

在了解了以上内容后(是的,我是一个noob),我的方法是在启动蓝牙数据服务时获得一个CPU唤醒锁。。。无限期地坚持下去。这似乎是可行的,但它似乎真的锤打电池寿命

所以,经过大量的谷歌搜索和阅读,我似乎真的不清楚在我的场景中,什么是最好的方法

  • 我希望能够定期检查来自我的源的一些新数据(在本例中是蓝牙数据)

  • 我想尽量减少电池的使用

我是否在线程不断寻找新数据的整个过程中保持CPU唤醒锁打开

不使用SystemClock.sleep(xxx);在一个不断循环CPU唤醒锁帮助的线程中?对于一个有无止境唤醒锁的线程来说,这能节省一些电池吗

我应该抛弃所有的wakelock业务,使用某种报警功能吗

检查新数据的频率大约为20秒

检查新数据|睡眠20秒|检查新数据|睡眠20秒


我希望我的应用程序可以无限期运行,每隔一段时间运行一次,但也要使用最短的电池寿命。

我在我的应用程序中使用过类似的报警功能,但时间间隔稍长~3分钟。与唤醒锁相比,它有助于节省电池。你可以尝试这种方法,但也可以重新考虑20秒的持续时间,因为它非常低。好的,很高兴知道。。。谢谢:-)也许有一些等式可以找到平衡,例如,如果少于156秒,则使用永久唤醒锁定,否则使用报警。是否有一些信息描述了什么时候报警与唤醒锁更有效??。。。