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