6

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

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

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

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

任何输入表示赞赏。

4

2 回答 2

2

正如评论所表明的那样,这确实不是一个好主意。就像在“市场上的一星评级”类型的一个不是好主意。

加速度计设计用于跑步活动(例如,游戏),仅此而已。它绝对不是为了在您尝试的模式下使用而设计的。

您还假设设备会在您释放WakeLock. 这可能是真的,也可能不是。我怀疑你会发现你导致 CPU 的开启时间明显超过 40% 的可用时间,即使你只强制它开启 40%。

我强烈建议您查看Jeff Sharkey 在 2009 年 Google I|O 会议上关于 Android 电源使用情况的演讲

于 2011-04-14T18:09:26.757 回答
0

您是否使用过 MyTracks 应用程序?http://code.google.com/p/mytracks/

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

我和你有同样的问题——虽然我不想使用唤醒锁,但如果操作系统一路杀掉应用程序,我的应用程序就会被毁掉。现在我们正在这样做,代价是每小时消耗大约 10% 的电池寿命——这还不错。这当然不是很好,但我们的平均路径只有大约 20 分钟。它有效。

使用警报管理器似乎是一条更好的路线。在这种情况下如何使用它有什么好的例子吗?

于 2012-12-05T16:45:23.743 回答