我正在构建一个使用播放服务API来获取位置的应用程序。我用下一个命令开始位置更新:
LocationServices.FusedLocationApi.requestLocationUpdates(
mGoogleApiClient, mLocationRequest, this);
要停止它,我只需执行下一段代码,当" STOP"按下按钮:
LocationServices.FusedLocationApi.removeLocationUpdates(
mGoogleApiClient, this);
然而,如果配置发生变化(例如,旋转屏幕)。当我按下按钮时,应用程序出错:
java.lang.IllegalStateException: GoogleApiClient is not connected yet.
您能告诉我,如何通过我的" Stop"停止更新位置信息。屏幕旋转后按钮? 非常感谢!
我不想在屏幕旋转时禁用配置更改。
答案 0 :(得分:0)
我认为当您旋转屏幕活动时会自行刷新。要处理此错误,请尝试使用:
if (!mGoogleApiClient.isConnecting())
LocationServices.FusedLocationApi.removeLocationUpdates(mGoogleApiClient, this);
或只是:
if (mGoogleApiClient.isConnected())
LocationServices.FusedLocationApi.removeLocationUpdates(mGoogleApiClient, this);
答案 1 :(得分:0)
停止并重新启动onPause()和onResume()方法中的更新,例如开发人员指南建议:http://developer.android.com/training/location/receive-location-updates.html