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

因此,我已经与FusedLocationClient合作了大约2个月。向客户端传递一个位置请求,该请求至少在手机“清醒”时正确设置检索位置更新的时间间隔。如果将时间间隔设置为1分钟,则几乎每分钟都会得到一次更新,但是当手机被锁定然后返回到应用程序时,我可以看到更新仅每10分钟发生一次。


有使用过Android FusedLocationClient的经验的人有什么线索可能会发生这种情况吗?客户端正在使用Looper.myLooper()循环,如果手机被锁定,此线程会减慢速度吗?


  mLocationRequest = new LocationRequest();

    mLocationRequest.setPriority(LocationRequest.PRIORITY_HIGH_ACCURACY);

    mLocationRequest.setInterval(OneMin);

    mLocationRequest.setFastestInterval(OneMin);

    mLocationRequest.setMaxWaitTime(OneMin);

更新为原始问题********因此,在从回调方法将“融合的位置客户端”切换为“待处理的意图方法”之后,我仍然得到相同的结果。这个待定的意图方法应该从应用程序后台而不是前台运行客户端,但是位置更新仍然会慢到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文档正在深入研究建议使用Scheduled job的漏洞,但没有给出直接的示例。


拉风的咖菲猫
浏览 134回答 1
1回答

尚方宝剑之说

如果您是在Android 8.0(API级别26)或更高版本上进行测试,则每小时只会检索几次更新。这是来自Android文档。为了减少功耗,Android 8.0(API级别26)限制了后台应用检索用户当前位置的频率。应用程序每小时只能接收几次位置更新。运行API 25级及更低版本的设备将正常接收后台更新。可以在Android版本概述中找到更多信息。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java