GPS定位和深度睡眠

时间:2014-01-28 17:39:06

标签: android gps wakelock android-wake-lock

我有一个前台服务(START_STICKY,因此没有问题,因为操作系统“杀死”方面)每2秒接收一次位置(GPS)更新以进行导航。我不接受任何唤醒锁。我的问题是:我是否应该使用唤醒锁以避免深度睡眠?或者位置更新是否足以“正在运行”?

2 个答案:

答案 0 :(得分:3)

在Android代码中进行了一些挖掘之后,响应是:不,你不需要它。 Android将为您(LocationManagerService)获取一个唤醒锁,直到onLocationChange结束或您的广播接收器收到意图。如果你做了一些异步工作(启动一个意图服务,在onLocationChange中发布一些代码等等),那么你需要创建自己的部分唤醒锁。

答案 1 :(得分:0)

我在app中做同样的事情(但是我使用接收器来接收我推荐的位置更新 - 听众有很多错误报告)。你的方式有两个问题:

  1. 服务可能无论如何都会关闭
  2. 服务最终会睡着了 - 我想知道你怎么没有注意到这个
  3. 正确的方法是使用AlarmManager注册警报 - 警报将唤醒接收器。从onReceive()开始,您必须开始WakefulIntentService,它将为您管理锁定。

    请参阅:

    编辑:2秒真的经常。这会扼杀电池 - 预计收视率会非常低 - 或者会增加间隔时间。