2011-01-06 20 views
0

異なるアクティビティの1つのアクティビティからメソッドを呼び出すことに関する質問があります。 startActivityForResultを使用し、2番目のアクティビティが終了した後に結果を取得するアクティビティがありますが、2番目のアクティビティでfinish()を呼び出す前に、最初のアクティビティでrefresh()メソッドを呼び出します。別のアクティビティからメソッドを呼び出す

私の最初の考えは、最初のアクティビティをインテントで余分に渡すことで、アクティビティのメソッドを参照できますが、これがどのように行われているかはわかりません。

答えて

2

アクティビティBを終了する前にアクティビティAでrefresh()を呼び出すのはなぜですか? startActivityForResult()を使用してアクティビティBを開始した場合は、アクティビティA内でonActivityResult()という結果が返されます。その時点でrefresh()に電話をかけることができます。だから、例を与えるために:

活動Bがいる:

setResult(RESULT_OK); 
finish(); 

活動Aはあります

private static final int ACTIVITY_B = 0; 
... 
Intent intent = new Intent(this, ActivityB.class); 
startActivityForResult(intent,ACTIVITY_B); 
... 
@Override 
protected void onActivityResult(int requestCode, int resultCode, Intent intent) { 
    super.onActivityResult(requestCode, resultCode, intent); 
    switch (requestCode){ 
    case ACTIVITY_B: 
     switch (resultCode){ 
     case RESULT_OK: 
      refresh(); 
      break; 
     } 
    } 
} 

それとも、他のイベントを通知するために、他の結果コードを使用することができます。

関連する問題