2015-02-03 8 views
0

결과에 대한 하위 작업을 시작하는 활동이 있습니다. 하위 활동을 시작할 때, 그 finish() 방법에 내가 bunConnAssets하위 작업에서 반환 된 결과 코드가 올바르지 않습니다.

다음은 의도 intConnAssets이 번들을 추가 할 때 내가 마지막으로, 실행시에, setResult(RESULT_OK, intConnAssets);

문제가 전화를 번들로 일부 데이터를 추가 하위 작업을 닫습니다. 따라서 해당 finish() 메서드가 호출되고, mainActivity의 onActivityResult이 호출되지만 그 안에 switch-case이 호출되지 않습니다. 하지만

else { 
      Log.d(TAG, "resultCode != RESULT_OK"); 
     } 

는 resutCode가 하위 활동에서 반환 된 이유가 일어나고

확인되지 의미라고?

하위 활동 :

onActivityResult를
@Override 
public void finish() { 
    // TODO Auto-generated method stub 
    super.finish(); 
    Log.w(TAG, "@finish()."); 

    if (this.mqttSettingsDB != null) { 
     Log.d(TAG, "this.mqttSettingsDB is not null."); 

     int[] id = this.mqttSettingsDB.getIDs(); 
     Bundle bunConnAssets = new Bundle(); 
     Intent intConnAssets = new Intent(); 
     .... 
     .... 
     .... 
     intConnAssets.putExtras(bunConnAssets); 
     setResult(RESULT_OK, intConnAssets); 

    } else { 
     Log.wtf(TAG, "this.mqttSettingsDB is null."); 
    } 
} 

:

@Override 
protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
    // TODO Auto-generated method stub 
    super.onActivityResult(requestCode, resultCode, data); 
    Log.d(TAG, "onActivityResult"); 

    switch (requestCode) { 
    case REQUEST_CODE: 
     if (resultCode == RESULT_OK) { 
      if (data != null) { 
       if (data.hasExtra("bunConnAssets")) { 
        Log.d(TAG, "Bundle exists"); 
       } else { 
        Log.d(TAG, "Bundle does not exist"); 
       } 
      } 
     } else { 
      Log.d(TAG, "resultCode != RESULT_OK"); 
     } 
     break; 

    default: 
     Log.e(TAG, "Unexpected RequestCode."); 
     break; 
    } 
} 
+0

로 시도,'마지막 줄 수 있어야합니다. – Sufian

답변

2

당신은 나머지 코드가 실행되지 않을 수 있으므로, 첫 번째 줄에서 super.finish()을 요구하고있다.

코드 끝에서 super 메소드를 호출하십시오.

1

내 이해,`super.finish()에 아래의 코드

@Override 
public void finish() { 

    Log.w(TAG, "@finish()."); 

    if (this.mqttSettingsDB != null) { 
     Log.d(TAG, "this.mqttSettingsDB is not null."); 

     int[] id = this.mqttSettingsDB.getIDs(); 
     Bundle bunConnAssets = new Bundle(); 
     Intent intConnAssets = new Intent(); 
     .... 
     .... 
     .... 
     intConnAssets.putExtras(bunConnAssets); 
     setResult(RESULT_OK, intConnAssets); 

    } else { 
     Log.wtf(TAG, "this.mqttSettingsDB is null."); 
    } 
    super.finish(); 
}