【发布时间】:2018-05-08 08:52:48
【问题描述】:
我有一个后台服务,每 12 分钟更新一次位置。我们希望每 5-6 分钟测试一次位置更新,但在 Android 文档中我们发现:
为了降低功耗,Android 8.0(API 级别 26) 限制后台应用程序检索用户当前的频率 地点。每个应用只能接收几次位置更新 小时。
https://developer.android.com/about/versions/oreo/background-location-limits.html
服务中接收更新的代码:
mLocationCallback = new LocationCallback() {
@Override
public void onLocationResult(LocationResult locationResult) {
Location location = locationResult.getLastLocation();
//...
}
};
mFusedLocationClient = LocationServices.getFusedLocationProviderClient(this);
mLocationRequest = new LocationRequest();
mLocationRequest.setPriority(LocationRequest.PRIORITY_HIGH_ACCURACY);
mLocationRequest.setInterval(TIME_TO_CHECK_LOCATION);
mLocationRequest.setFastestInterval(TIME_TO_CHECK_LOCATION);
mLocationRequest.setMaxWaitTime(TIME_TO_CHECK_LOCATION);
mFusedLocationClient.requestLocationUpdates(mLocationRequest, mLocationCallback, null);
有人在使用 Android 8 的后台服务中测试过位置更新的限制吗?
限制是每小时固定的次数?
【问题讨论】:
-
运行 Android 8 的设备在一小时内执行 3-4 次
-
@lakshman.pasala 你有这方面的资料吗?
标签: android service location background-service android-8.0-oreo