立即删除位置更新

Posted

技术标签:

【中文标题】立即删除位置更新【英文标题】:Remove location updates immediately 【发布时间】:2015-07-29 06:03:44 【问题描述】:

我正在使用融合位置 API 我有 2 个意图服务:

第一个意图服务是注册 GoogleApiClient 对象。 第二个意图服务经常获取位置更新,并且不使用 GoogleApiClient 对象。

我想打电话:LocationServices.FusedLocationApi.removeLocationUpdates(mGoogleApiClient,pendingIntent);

从获取位置更新的服务立即停止获取位置,但我不能因为 mGoogleApiClient 没有在那里注册。

我对此的解决方案感到困惑?有什么想法吗?

【问题讨论】:

那么在那里注册? 我想过,但很奇怪?我们不能只在一项服务中注册 mGoogleApiClient 并在其他服务中使用它吗?? 如果您的mGoogleApiClient 是在不同的IntentService 中创建的,那么您无论如何都无法使用它,因为IntentService 在完成onHandleIntent() 后会立即被销毁,因此可能不会当你的第二个IntentService 运行时,它甚至不存在。 【参考方案1】:

您的应用可以同时在多个地方连接到GoogleApiClient。在您的活动识别IntentService 中使用blockingConnect() 连接到GoogleApiClient 会更容易,这样您可以在需要时直接调用removeLocationUpdates()

【讨论】:

感谢您的回答。我尝试使用 this.stopSelf();在注册到 GoogleApiClient 的其他意图服务中,我删除了位置更新,看起来它正在工作。我会尽快检查后更新。但是你的回答被接受了。

以上是关于立即删除位置更新的主要内容,如果未能解决你的问题,请参考以下文章

使用 locationClient 删除位置更新

使用融合位置地理围栏时是不是需要请求位置更新?

Android服务不更新位置

在 Google 地图导航正在运行时请求位置更新

在 QML 中为 MapQuickItem 设置位置更新动画

停止核心位置更新,然后使用计时器重新启动它们