融合位置提供商无理由停止

时间:2016-01-05 13:26:07

标签: android google-maps fusedlocationproviderapi

我正在使用融合位置提供商根据用户需求频繁更新位置信息。使用 BroadCast接收器通过 LocationRequest 类接收位置更新。

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

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

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

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

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

我没有停止申请或停止从 FusedLocationApi

收到位置更新

1 个答案:

答案 0 :(得分:0)

  

我认为你的FusedLocationApi没有错。问题是   BroadcastReceiver

当前正在执行BroadcastReceiver的进程(即当前在其onReceive(Context, Intent)方法中运行代码)被认为是一个前台进程,并且将继续由系统运行,除非在案例中极度记忆压力。

onReceive()返回后,BroadcastReceiver不再有效。

这意味着,对于运行时间较长的操作,您通常会将 Service BroadcastReceiver 结合使用以保持包含进程处于活动状态在整个操作期间。

了解更多click here