【发布时间】:2016-10-27 05:53:00
【问题描述】:
它会消耗大量电池,但如果应用不在前台,我仍然希望能够跟踪设备的位置。有哪些优化位置管理器的方法?
每次触发 onLocationChanged 时,它都会发出一个 API 请求。通过在何时发送 API 请求时开启计时器,它会大大提高电池电量吗?
或者有没有办法在应用不在前台时实现低功耗 gps 模式?
【问题讨论】:
它会消耗大量电池,但如果应用不在前台,我仍然希望能够跟踪设备的位置。有哪些优化位置管理器的方法?
每次触发 onLocationChanged 时,它都会发出一个 API 请求。通过在何时发送 API 请求时开启计时器,它会大大提高电池电量吗?
或者有没有办法在应用不在前台时实现低功耗 gps 模式?
【问题讨论】:
如果您使用 google play 服务从 gps 或粗略位置提供商获取位置,您可以设置这些位置更新的频率。您需要做的是检测您的应用何时被置于后台,并通知您的服务不那么频繁地更新位置。
当应用恢复时,您会再次更新以接收更频繁的位置更新。
您也可以更改提供商,网络位置在电池方面更便宜,但精度较低,您可以在后台使用网络,在前台使用 gps。
您可以使用融合位置提供程序中的 locationRequest 对象来配置这些设置。
https://developers.google.com/android/reference/com/google/android/gms/location/LocationRequest
https://developer.android.com/training/location/receive-location-updates.html#updates
【讨论】: