Android Wakelock vs Alarm - 有效地轮询数据

时间:2014-09-11 08:54:51

标签: android bluetooth

我正在开发一个需要经常检查数据的Android应用程序。对于这个问题的背景我不认为这很重要,但是,我要求设备经常给我蓝牙数据。

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

在了解了上述内容之后(是的,我是一个菜鸟),我的方法是在启动蓝牙数据服务时获取CPU Wakelock ...并无限期地保留它。这似乎有效,但似乎真的会影响电池续航时间。

因此,在谷歌搜索和阅读之后,对我来说,对我来说最好的方法似乎是不清楚的。

  • 我希望能够定期检查来自我的来源的某些新数据(在这种情况下是蓝牙数据)。

  • 我想最大限度地减少电池使用量

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

使用SystemClock.sleep(xxx);在一个不断循环与CPU唤醒锁的帮助中?对于有无限唤醒锁的线程,这是否可以节省电池电量?

我是否应该抛弃所有这些唤醒锁业务并使用某种报警功能?

检查新数据的频率可能是20秒......

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

我希望我的应用程序无限期运行,经常,但也使用最少的电池寿命。

0 个答案:

没有答案