我有一个服务,它一直跟踪用户的位置(只要它正在运行)并将数据放入 SQL 表中,当应用程序处于前台时 - >该服务还向 UI 发送位置更新和地图和位置已更新。
- 当应用程序在前台时-> 请求高精度和频繁更新的位置,以便用户可以享受 UI 中的高精度和频繁更新。
- 当应用程序关闭时(仅运行服务) -> 请求不太准确的位置更新,所以我不会消耗太多电池,因为我所做的只是填满一张桌子。
那么,追踪位置时影响电池使用的因素有哪些呢?
在文档示例中
protected void createLocationRequest() {
LocationRequest mLocationRequest = new LocationRequest();
mLocationRequest.setInterval(10000);
mLocationRequest.setFastestInterval(5000);
mLocationRequest.setPriority(LocationRequest.PRIORITY_HIGH_ACCURACY);
}
他们说
PRIORITY_HIGH_ACCURACY 的优先级,结合您在应用程序清单中定义的 ACCESS_FINE_LOCATION 权限设置,以及 5000 毫秒(5 秒)的快速更新间隔,导致融合位置提供程序返回精确到几秒内的位置更新脚。
所以,这就是当应用程序在前台时我会使用的(在设置中我可以看到应用程序在该位置具有“高电池使用率”)。
但是当只有服务运行时我应该更改哪些参数?我希望使用的位置会说:“低电量使用”。