2011-01-06 54 views
0

我有一個關於從不同活動中的一個活動調用方法的問題。我有一個使用startActivityForResult的活動,並在第二個活動結束後返回結果,但在第二個活動上調用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; 
     } 
    } 
} 

或者你也可以使用其他的結果代碼信號的其他事件。