【问题标题】: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 运行时,它甚至不存在。

标签: android android-intent android-fusedlocation


【解决方案1】:

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

【讨论】:

  • 感谢您的回答。我尝试使用 this.stopSelf();在注册到 GoogleApiClient 的其他意图服务中,我删除了位置更新,看起来它正在工作。我会尽快检查后更新。但是你的回答被接受了。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-09-13
  • 1970-01-01
  • 1970-01-01
  • 2018-11-05
  • 2021-01-03
  • 1970-01-01
相关资源
最近更新 更多