在卸载Play服务时,在后台应用中使用GoogleApiClient

时间:2015-01-08 16:14:56

标签: android google-play-services

我的应用程序使用Google Maps Android API v2并使用FusedLocationProviderApi。由于应用程序中的事件,GoogleApiClient可能已连接或断开连接。当应用程序处于后台时,可能会发生客户端连接,即位置跟踪已打开。我不使用位置监听器,我现在只使用LocationServices.FusedLocationApi.getLastLocation(locationClient)调用(也取决于特定于应用程序的事件)。

通常,在Activity中,我会使用onResume()中的GooglePlayServicesUtil.isGooglePlayServicesAvailable()方法来检查它们是否可用。我们的想法是:当应用程序被发送到后台时,用户可以卸载/禁用Play服务的更新,当返回应用程序时,onResume()会再次执行检查,如果出现任何错误,可以显示对话框。 / p>

在我的用例中,位置服务在后台使用,即不在活动/片段中,并且可能还需要在应用程序在后台时工作。但是,此时,用户可以卸载/禁用Play服务。

问题:当Play服务消失后,我的应用程序中的GoogleApiClient连接会在后台运行时会发生什么?我是否接受来自ConnectionCallbacks #nConnectionSuspended()方法的调用,或者可能期望崩溃并且必须以某种方式处理它,或者它是否仍然有效(就像我仍然可以在Linux上观看电影,即使在我删除文件后,因为玩家有手柄吗?

1 个答案:

答案 0 :(得分:1)

所以回答我自己的问题:首先,调用ConnectionCallbacks#onConnectionSuspended(),然后调用OnConnectionFailedListener#onConnectionFailed()。因此,当使用服务的代码受到GoogleApiClient#isConnected()调用的保护时(至少我是这样做的),没有任何事情会崩溃。