【发布时间】:2018-06-26 14:38:09
【问题描述】:
所以我现在已经使用 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);
更新原始问题******** 因此,在将 Fused Location Client 从回调方法切换到 Pending Intent Method 之后,我仍然得到相同的结果。这种挂起的意图方法应该从应用程序后台而不是前台运行客户端,但位置更新仍然会减慢到 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 文档正在深入研究建议使用计划作业的兔子洞,但没有给出直接的示例。
【问题讨论】:
标签: java android gps location android-pendingintent