2016-06-21 43 views
1

我遇到了一個奇怪的問題。Android checkLocationSettings從未在onResume中調用過

我與LocationServices的例子玩耍,我發現,如果我試圖調用LocationServices.SettingsApi.checkLocationSettings在的onResume活動的,回調不會被調用。

我已經修改了應用程序啓動時自動啓動的定位的活動,並且該流程是:

  • 啓動應用程序;
  • 啓用(如果需要)本地化;
  • 把應用程序放在後臺;
  • 禁用本地化服務;
  • 恢復應用程序。

在最後一步,我期待看到對話框中有一個啓用本地化的請求,但這種情況從未發生過。

奇怪的是,當第一次啓動應用程序時,它完美地工作。

有人遇到過這個?

編輯:

public synchronized void checkLocationSettings() { 
     PendingResult<LocationSettingsResult> result = 
       LocationServices.SettingsApi.checkLocationSettings(
         mGoogleApiClient, 
         mLocationSettingsRequest 
       ); 

     Log.e(TAG, "check"); 

     result.setResultCallback(this); 
    } 

ResultCallback:

@Override 
    public void onResult(LocationSettingsResult locationSettingsResult) { 

     final Status status = locationSettingsResult.getStatus(); 
     Log.e(TAG, status.toString()); 
     switch (status.getStatusCode()) { 
      case LocationSettingsStatusCodes.SUCCESS: 
       Log.i(TAG, "All location settings are satisfied."); 
       startLocationUpdates(); 
       break; 
      case LocationSettingsStatusCodes.RESOLUTION_REQUIRED: 
       Log.i(TAG, "Location settings are not satisfied. Show the user a dialog to" + 
         "upgrade location settings "); 
        showDialogToCheckSettings(status); 

       break; 
      case LocationSettingsStatusCodes.SETTINGS_CHANGE_UNAVAILABLE: 
       Log.i(TAG, "Location settings are inadequate, and cannot be fixed here. Dialog " + 
         "not created."); 
       listener.impossibleToEnable(); 
       break; 
     } 
    } 

Log.e(TAG,status.toString())從未在的onResume

+0

請問您可以發佈檢查設置的代碼 – Krutik

回答

1

叫我發現了問題。

該回調未被調用,因爲我忘記了在onResume中調用mGoogleApiClient.connect()

相關問題