每10秒获取PARTIAL_WAKELOCK

时间:2011-04-13 17:54:10

标签: android coding-style power-management android-wake-lock

应用程序是否有任何问题,以10秒的间隔获取部分唤醒锁定。我的用例是能够通过设备加速度计持续监控用户的移动。基本上,我有一个服务,每隔10秒就会被一个警报调用。

此服务获取唤醒锁定,从加速度计获取一些读数以确定当前的移动状态,然后释放唤醒锁定。服务的总寿命约为4秒。

我的理解是,这导致设备在每分钟保持清醒大约24秒。虽然不理想,但我希望这仍然比在我的应用程序的整个生命周期内持续唤醒锁定更好。

另一方面,在如此短的时间内获取和释放唤醒锁的行为是否可能与电池寿命一样糟糕?

赞赏任何意见。

2 个答案:

答案 0 :(得分:1)

正如评论所指出的,这真的不是一个好主意。正如“市场上的一星评级”类型的一个不太好的想法。

加速度计设计用于正在运行的活动(例如游戏),就是它。它绝对不是设计用于你正在尝试的模式。

您还假设在释放WakeLock后设备会立即回来睡着。这可能是也可能不是。我怀疑你会发现你导致CPU的启动时间大大超过可用时间的40%,即使你只是要求它开启40%。

我强烈建议您查看Jeff Sharkey's presentation on power usage in Android from the 2009 Google I|O conference

答案 1 :(得分:0)

你有没有使用过应用程序MyTracks? http://code.google.com/p/mytracks/

最后我检查过,当用户有一条活动路径时,他们会使用唤醒锁。

我和你有同样的问题 - 虽然我不想使用唤醒锁定,但如果操作系统在途中杀死了应用程序,我的应用程序就会被破坏。现在我们正在这样做,代价是每小时大约10%的电池寿命 - 这并不是那么糟糕。它当然不是很好,但我们的平均路径只有大约20分钟。它有效。

使用Alarm Manager似乎是一条更好的路线。在这种情况下如何使用它的任何好例子?