2015-11-13 87 views
2

我正在構建使用播放服務API獲取位置的應用程序。我開始下命令的位置更新:無法在配置更改破壞活動後停止Android位置更新

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

要停止它,我只是執行它時,「STOP」按鈕時執行的代碼的下一條:

LocationServices.FusedLocationApi.removeLocationUpdates(
      mGoogleApiClient, this); 

然而,如果配置發生變化(例如,旋轉屏幕)。當我按下按鈕,該應用程序進入到一個錯誤:

java.lang.IllegalStateException: GoogleApiClient is not connected yet. 

你能告訴我,我怎麼能阻止我的「停止」按鈕的位置更新屏幕旋轉後? 非常感謝!

我不想在屏幕旋轉時禁用配置更改。

+0

requestLocationUpdates在你的onCreate方法中? – galvan

+0

@galvan OnCreate我初始化mGoogleAPIClient並使用此代碼開始位置更新if(mGoogleApiClient.isConnected()){startLocationUpdates();}其他{ createLocationRequest(); }'code' – Luis

回答

0

我認爲,當你旋轉屏幕活動刷新本身。爲了解決這個錯誤嘗試使用:

if (!mGoogleApiClient.isConnecting()) 
LocationServices.FusedLocationApi.removeLocationUpdates(mGoogleApiClient, this); 

或者只是:

​​
+0

恐怕問題在於當活動刷新時,mGoogleAPIClient會丟失,我無法再引用該實例來停止位置更新 – Luis