1

我是初学者。我想开发一个可以生成基于位置的通知的应用程序。在 android 开发者网站中,我发现为了保持电池寿命和数据交换之间的平衡,应该考虑

  1. 新更新的频率
  2. 您在其中收听位置更新的窗口。

我知道可以通过调用 requestLocationUpdates() 来控制频率。我的问题是如何控制监听更新的窗口?这是否意味着一旦我从 LocationListener 类的 onLocationChanged() 方法获取位置更新,我应该停止使用 removeUpdates() 侦听更新?

谢谢

4

2 回答 2

1

GPS 设备只有在您注册 requestLocationUpdates() 时才开始工作(并消耗电力)。

理论上,如果更新不是很频繁,GPS 可以在更新之间关闭。例如,假设您每 5 分钟请求一次更新,那么 GPS 可以关闭 4 分钟 30 秒左右。并及时开启以获取下一个位置。如果您将新位置请求设置为每 5 秒一次,则 GPS 不会在更新之间关闭。

我有一个应用程序可以让 GPS 全时保持清醒,并在数据库中记录位置。此应用程序还可以显示地图并绘制记录的轨迹。我的经验是,用于绘制实时更改轨迹的地图的功率远高于 GPS 使用的功率。

祝你好运

于 2012-09-28T17:00:01.217 回答
0

我认为只有在不再需要新位置时才应该停止收听更新。如果您只需要一个新位置,最好立即停止收听。为了获得更多位置(随着用户移动),建议开始监听位置更新onResume并停止监听onPause。这意味着onLocationChanged只有当您的活动在所有其他人面前(可见)时才会调用您。

总之,管理您需要的窗口的活动应该具有上述指定的这些调用。

于 2012-09-28T16:59:36.103 回答