FusedLocationApi.requestLocationUpdates() 一段时间后停止间隔请求
FusedLocationApi.requestLocationUpdates() stops interval requests after a while
这个问题是关于我正在开发的 Android 应用程序。我正在使用 Android 版本 7.
在真实的 phone 上进行测试
我希望 FusedLocationApi 每 15 分钟请求一次 GPS 定位。
当应用程序在前台并且屏幕打开时,GPS 请求按预期发生。
当应用程序最小化且 phone 处于睡眠状态时,更新按预期进行一两个小时,然后逐渐减少并完全停止。似乎轻微的振动或只是打开屏幕(应用程序仍在后台)会触发 GPS 更新。
// Request frequent location updates.
Intent locationUpdateIntent = new Intent(this, StoreLocationService.class);
locationUpdateIntent.setAction(StoreLocationService.ACTION_LOCATION_UPDATE);
LocationRequest locationRequest = LocationRequest.create();
locationRequest.setPriority(LocationRequest.PRIORITY_HIGH_ACCURACY);
locationRequest.setInterval(15 * 60 * 1000); // 15 minutes
locationRequest.setFastestInterval(15 * 60 * 1000); // 15 minutes
LocationServices.FusedLocationApi.requestLocationUpdates(
mGoogleApiClient, locationRequest,
PendingIntent.getService(this, 0, locationUpdateIntent, 0));
我认为这只是因为打瞌睡模式,Google 介绍打瞌睡模式,这是使用互联网或网络的后台服务,当您的设备大约 3 到 5 时,打瞌睡模式处于活动状态-分钟理想或处于待机模式(意味着您正在关闭屏幕,没有任何应用程序使用互联网或网络)。
这个问题是关于我正在开发的 Android 应用程序。我正在使用 Android 版本 7.
在真实的 phone 上进行测试我希望 FusedLocationApi 每 15 分钟请求一次 GPS 定位。
当应用程序在前台并且屏幕打开时,GPS 请求按预期发生。
当应用程序最小化且 phone 处于睡眠状态时,更新按预期进行一两个小时,然后逐渐减少并完全停止。似乎轻微的振动或只是打开屏幕(应用程序仍在后台)会触发 GPS 更新。
// Request frequent location updates.
Intent locationUpdateIntent = new Intent(this, StoreLocationService.class);
locationUpdateIntent.setAction(StoreLocationService.ACTION_LOCATION_UPDATE);
LocationRequest locationRequest = LocationRequest.create();
locationRequest.setPriority(LocationRequest.PRIORITY_HIGH_ACCURACY);
locationRequest.setInterval(15 * 60 * 1000); // 15 minutes
locationRequest.setFastestInterval(15 * 60 * 1000); // 15 minutes
LocationServices.FusedLocationApi.requestLocationUpdates(
mGoogleApiClient, locationRequest,
PendingIntent.getService(this, 0, locationUpdateIntent, 0));
我认为这只是因为打瞌睡模式,Google 介绍打瞌睡模式,这是使用互联网或网络的后台服务,当您的设备大约 3 到 5 时,打瞌睡模式处于活动状态-分钟理想或处于待机模式(意味着您正在关闭屏幕,没有任何应用程序使用互联网或网络)。