在活动被配置更改破坏后,无法停止Android位置更新

在活动被配置更改破坏后,无法停止Android位置更新,android,Android,我正在构建一个使用plays services API获取位置的应用程序。我使用下一个命令启动位置更新: LocationServices.FusedLocationApi.requestLocationUpdates( mGoogleApiClient, mLocationRequest, this); 要停止它,我只需执行下一段代码,该代码在按下“停止”按钮时执行: LocationServices.FusedLocationApi.removeLocationUp

我正在构建一个使用plays services API获取位置的应用程序。我使用下一个命令启动位置更新:

LocationServices.FusedLocationApi.requestLocationUpdates(
            mGoogleApiClient, mLocationRequest, this);
要停止它,我只需执行下一段代码,该代码在按下“停止”按钮时执行:

LocationServices.FusedLocationApi.removeLocationUpdates(
            mGoogleApiClient, this);
但是,如果配置发生变化(例如,旋转屏幕)。当我按下按钮时,应用程序出现错误:

java.lang.IllegalStateException: GoogleApiClient is not connected yet.
你能告诉我,在屏幕旋转后,如何用“停止”按钮停止位置更新? 非常感谢


当屏幕旋转时,我不想禁用配置更改。

我认为旋转屏幕时,活动会自动刷新。要处理此错误,请尝试使用:

if (!mGoogleApiClient.isConnecting())
 LocationServices.FusedLocationApi.removeLocationUpdates(mGoogleApiClient, this);
或者只是:

if (mGoogleApiClient.isConnected())
 LocationServices.FusedLocationApi.removeLocationUpdates(mGoogleApiClient, this);

停止并重新启动onPause()和onResume()方法中的更新,就像《开发人员指南》建议的那样:

requestLocationUpdates在您的onCreate方法中?@galvan onCreate I初始化MGoogleapClient,并使用此
代码启动位置更新(mgoogleapClient.isConnected()){startLocationUpdates();}否则{createLocationRequest();}
code
恐怕问题在于,当活动刷新时,MGoogleAppClient丢失,我无法再引用该实例来停止位置更新