0

在我的項目,我使用「GoogleApiClient」,使地方要求各5秒,問題是,如果我把GPS關閉,然後重新打開應用程序,壓傷因爲mGoogleApiClient對象是當前空!我只是做了簡單的檢查上onRestart如何創建一個IntentService檢查GoogleApiClient不爲空的Android

protected void onRestart() { 
    super.onRestart(); 
    if(mGoogleApiClient != null && mGoogleApiClient.isConnected()){ 
     startLocationUpdate(); 
    } 
} 

我要的是創造的東西,每次對象mGoogleApiClient是空,因此它可以在後臺嘗試,直到被罰款去,我可以叫!裏面的startLocationUpdate();我使用這個:

mlocationRequest = new LocationRequest(); 
    mlocationRequest.setInterval(5000); 
    mlocationRequest.setFastestInterval(2000); 
    mlocationRequest.setPriority(LocationRequest.PRIORITY_HIGH_ACCURACY); 
    try{ 
     LocationServices.FusedLocationApi.requestLocationUpdates(mGoogleApiClient,mlocationRequest,MainActivity.this); 
    }catch (SecurityException ex){ 
     Toast.makeText(this, ex.toString(), Toast.LENGTH_SHORT).show(); 
    } 

這可能是這樣的:

if(mGoogleApiClient != null){ 
    LocationServices.FusedLocationApi.requestLocationUpdates(mGoogleApiClient,mlocationRequest,MainActivity.this); 
    }else { 
    callServiceToTryConnection(); 
} 

我已經使用IntentServiceGeocoder得到的地址!

+0

您可以嘗試採用Android服務和定時器與服務 –

回答

0

入住onRestart是GPS的啓用或不受該條件

if (!manager.isProviderEnabled(LocationManager.GPS_PROVIDER)) { 
    //Here is your condition if GPS is not connected 
} 
+0

我已經做了,我要的是東西,不斷嘗試,直到連接恢復! –

+0

使用處理程序,然後它會保持在給定的時間後檢查GPS是否可用 –

0

把處理程序在連接中止或試圖檢查和連接失敗方法如果不爲null重新連接。

+0

我不能做手工!它必須是一個定時器的一些還挺所以每5秒後重試! –

+0

您可以使用處理程序類方法scheduleatFixedRate來設置它,您必須在其中指定該任務應該執行的時間間隔 –

相關問題