【问题标题】:Fused Location Provider Stops With No ReasonFused Location Provider 无故停止
【发布时间】:2016-04-09 08:19:08
【问题描述】:

我正在使用 Fused location provider 来根据用户需要获得频繁的位置更新。使用 BroadCast Reciever 通过 LocationRequest 类接收位置更新。

我正在使用待定意图初始化接收方。

    mPendingIntent = PendingIntent.getBroadcast(this, 1, mIntentService, 0);

并从融合提供商处获取位置更新。

LocationServices.FusedLocationApi.requestLocationUpdates(mGoogleApiClient,mLocationRequest, mPendingIntent);

所有这些在一段时间内都进展顺利。过了一段时间后说 2 小时或更长时间,然后突然 BroadCast Reciever 没有收到任何更新,而且它是如此不寻常,以至于它没有理由停止。

我没有停止应用程序或停止从 FusedLocationApi

接收位置更新

【问题讨论】:

  • 你看logcat了吗?里面有什么有趣的吗?另外,这仅在 Marshmallow 上还是在较旧的 api 上?
  • This SO issue可能与您的询问有关。
  • @Shmuel 未指定给任何版本,它很常见。 logcat 没什么特别的
  • @adjuremods 没有可接受的答案,我将如何尝试。

标签: android google-maps fusedlocationproviderapi


【解决方案1】:

我认为您的FusedLocationApi 没什么问题。问题是 BroadcastReceiver.

当前正在执行BroadcastReceiver 的进程(即当前在其onReceive(Context, Intent) 方法中运行代码)被认为是前台进程,并且将由系统保持运行,除非在内存压力极大的情况下.

onReceive() 返回后,BroadcastReceiver 将不再活动。

这意味着对于运行时间较长的操作,您通常将 ServiceBroadcastReceiver 结合使用,以使包含进程始终处于活动状态你的操作。

了解更多click here

【讨论】:

  • 我使用了 IntentService,这个问题也发生在我身上
猜你喜欢
  • 2019-09-04
  • 1970-01-01
  • 2016-10-30
  • 2014-01-24
  • 1970-01-01
  • 1970-01-01
  • 2016-07-19
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多