2016-06-21 17 views
1

私は奇妙な問題を抱えています。AndroidのcheckLocationSettingsがonResumeで呼び出されたことはありません

私はLocationServicesの例で遊んでいた、と私はLocationServices.SettingsApi.checkLocationSettings活動のonResumeをコールしようとした場合、コールバックが呼び出されないことが分かりました。

私はアプリケーションの起動時に自動的にローカライズを開始するアクティビティを変更した、フローは次のとおり

  • アプリを起動します。
  • (必要な場合)ローカライゼーションを有効にします。
  • アプリをバックグラウンドに置く。
  • ローカライゼーションサービスを無効にします。
  • アプリを再開します。

最後の手順では、ローカリゼーションを有効にする要求がダイアログに表示されることを期待していましたが、これは起こりません。

奇妙なことは、アプリを初めて起動するときに、完璧に機能することです。

誰かがこれを経験しましたか?

EDIT:

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()を呼び出すことを忘れたため、コールバックが呼び出されませんでした。

関連する問題