我正在尝试优化必须实现以下目标的 Android 应用程序:
每小时检索一次 GPS 位置和 doSomeWork()
在任何其他时间,如果设备移动超过@MINIMUM_DISTANCE,将更新频率增加到大约 5 分钟以记录移动,当移动结束时,我们可以返回每小时更新。
现在,AlarmManager 每小时触发一次可以满足第一个要求。这是完成这项任务的一种很好的电池效率方法。但是我不确定如何最好地完成第二个要求。
我是不是该:
注册一个每隔 5 分钟触发一次的 AlarmManager 与每小时计时器?每次注册LocationManager并尝试拉出一个位置,与之前的位置比较以确定是否发生移动。
在我每小时醒来后注册一个 LocationManager,最小距离参数等于我所需的最小移动。
还有什么?
我可以看到每种方法的优缺点。
在我看来,使用 LocationManager 最小距离参数是更简洁的解决方案,但我担心电池消耗,无论我的应用程序是否正在接收更新,这是否会使 GPS 一直处于高温状态?我也不确定注册接收器的最佳位置在哪里,我知道保持服务 100% 的时间运行是一种糟糕的做法(更不用说几乎不可能了)。
是的,我是 Android 新手!即将去测试LocationManager的行为。
提前致谢。