Android requestLocationUpdates保持开启状态

时间:2011-03-11 20:15:17

标签: android gps

我有一个严重的问题。在Android中调用requestLocationUpdates函数时,GPS会侦听当前位置。但如果手机在室内(比如地下),那么GPS将继续收听,直到找到一个位置。

这会在测试时杀死我的电池......有没有办法在听完一个位置2分钟后设置removeUpdates ???

由于

2 个答案:

答案 0 :(得分:3)

在两分钟未获得更新后,添加您自己的逻辑以呼叫removeUpdates()。没有内置的超时机制,但创建自己的机制不应该特别困难。

答案 1 :(得分:1)

我的建议:

  1. 创建一个使用Handler的类
  2. 使用sendMessageDelayed每5秒触发一次处理程序
  3. 为message.obj保留一个秒的计数器,每次调用处理程序时,将message.obj增加5。
  4. 当message.obj达到120时,你知道2分钟就可以了,你可以使用removeUpdate()

  5. 当调用onLocationChanged()时,在处理程序上使用removeMessages()并使用包含0的对象重新启动sendMessageDelayed()

  6. 处理程序!!