我是初学者。我想开发一个可以生成基于位置的通知的应用程序。在 android 开发者网站中,我发现为了保持电池寿命和数据交换之间的平衡,应该考虑
- 新更新的频率
- 您在其中收听位置更新的窗口。
我知道可以通过调用 requestLocationUpdates() 来控制频率。我的问题是如何控制监听更新的窗口?这是否意味着一旦我从 LocationListener 类的 onLocationChanged() 方法获取位置更新,我应该停止使用 removeUpdates() 侦听更新?
谢谢
我是初学者。我想开发一个可以生成基于位置的通知的应用程序。在 android 开发者网站中,我发现为了保持电池寿命和数据交换之间的平衡,应该考虑
我知道可以通过调用 requestLocationUpdates() 来控制频率。我的问题是如何控制监听更新的窗口?这是否意味着一旦我从 LocationListener 类的 onLocationChanged() 方法获取位置更新,我应该停止使用 removeUpdates() 侦听更新?
谢谢
GPS 设备只有在您注册 requestLocationUpdates() 时才开始工作(并消耗电力)。
理论上,如果更新不是很频繁,GPS 可以在更新之间关闭。例如,假设您每 5 分钟请求一次更新,那么 GPS 可以关闭 4 分钟 30 秒左右。并及时开启以获取下一个位置。如果您将新位置请求设置为每 5 秒一次,则 GPS 不会在更新之间关闭。
我有一个应用程序可以让 GPS 全时保持清醒,并在数据库中记录位置。此应用程序还可以显示地图并绘制记录的轨迹。我的经验是,用于绘制实时更改轨迹的地图的功率远高于 GPS 使用的功率。
祝你好运
我认为只有在不再需要新位置时才应该停止收听更新。如果您只需要一个新位置,最好立即停止收听。为了获得更多位置(随着用户移动),建议开始监听位置更新onResume
并停止监听onPause
。这意味着onLocationChanged
只有当您的活动在所有其他人面前(可见)时才会调用您。
总之,管理您需要的窗口的活动应该具有上述指定的这些调用。