Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/226.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java FusedLocationClient间隔在手机锁定时变慢_Java_Android_Gps_Location_Android Pendingintent - Fatal编程技术网

Java FusedLocationClient间隔在手机锁定时变慢

Java FusedLocationClient间隔在手机锁定时变慢,java,android,gps,location,android-pendingintent,Java,Android,Gps,Location,Android Pendingintent,所以我已经和FusedLocationClient一起工作了大约2个月。客户端会收到一个位置请求,该请求至少在手机处于“唤醒”状态时正确设置检索位置更新的间隔。如果我将时间间隔设置为1分钟,我几乎每分钟都会得到更新,但当手机锁定后,我回到应用程序时,我可以看到更新仅每10分钟发生一次 任何有使用FusedLocationClient for Android经验的人都知道为什么会发生这种情况?客户端正在使用Looper.myLooper()循环,如果手机被锁定,该线程是否会减慢速度 mLoca

所以我已经和FusedLocationClient一起工作了大约2个月。客户端会收到一个位置请求,该请求至少在手机处于“唤醒”状态时正确设置检索位置更新的间隔。如果我将时间间隔设置为1分钟,我几乎每分钟都会得到更新,但当手机锁定后,我回到应用程序时,我可以看到更新仅每10分钟发生一次

任何有使用FusedLocationClient for Android经验的人都知道为什么会发生这种情况?客户端正在使用Looper.myLooper()循环,如果手机被锁定,该线程是否会减慢速度

  mLocationRequest = new LocationRequest();
    mLocationRequest.setPriority(LocationRequest.PRIORITY_HIGH_ACCURACY);
    mLocationRequest.setInterval(OneMin);
    mLocationRequest.setFastestInterval(OneMin);
    mLocationRequest.setMaxWaitTime(OneMin);
更新原来的问题******** 因此,在将Fused Location客户端从回调方法切换到Pending Intent方法之后,我仍然得到相同的结果。这个挂起的意图方法应该从应用程序后台而不是前台运行客户端,但是位置更新仍然会慢到10分钟。这是我的日志

06-28 07:55:39.201 D/ddd: onHandleIntent: 38.5377347, -106.9408941
06-28 07:56:41.128 D/ddd: onHandleIntent: 38.5377747, -106.9406465
06-28 07:57:43.055 D/ddd: onHandleIntent: 38.5372963, -106.9409439
06-28 07:59:33.098 D/ddd: onHandleIntent: 38.5378022, -106.9406814
06-28 08:10:22.646 D/ddd: onHandleIntent: 38.5378164, -106.9410321
06-28 08:20:35.668 D/ddd: onHandleIntent: 38.5378373, -106.9408016
06-28 08:30:35.790 D/ddd: onHandleIntent: 38.5377677, -106.9407083
您可以从时间戳中看到间隔从1分钟变为10分钟。
有没有办法防止这种情况?Android文档正在深入兔子洞,建议使用计划作业,但没有给出直接的示例。

如果您在Android 8.0(API级别26)或更高版本上测试此功能,它将每小时仅检索几次更新。这来自Android文档

为了降低功耗,Android 8.0(API级别26) 限制后台应用程序检索用户当前文件的频率 地点。应用程序每次只能接收几次位置更新 小时


运行API级别25及更低的设备将正常接收后台更新。有关更多信息,请访问。

谢谢!我很难找到原因,而这正是我一直在寻找的。我正在运行API level 26,您提供的链接为后台位置行为提供了一些解决方案。令人惊叹的!