2011-02-05 32 views
0

我正在查找Activity的setResult()的訪問者版本。想象一下,如果在setResult()中使用了resultCode和Intent,getResult()將返回一個Bundle。完成調用後將活動導致OnPause()

原因是默認的活動加載resultCode設置爲RESULT_CANCELED:http://grepcode.com/file/repository.grepcode.com/java/ext/com.google.android/android/2.3_r1/android/app/Activity.java#669,我希望能夠從onPause方法查詢resultCode。這可以保存按下後退按鈕的監聽器。

回答

2

你就不能在resultCode保存到一個成員變量,當你把它和在onPasuse讀回?

public class MyActivity extends Activity { 
    private int result = RESULT_CANCELLED; 
    ... 
    // do some stuff 
    result = RESULT_OK; 
    setResult(result); 
    ... 
    @Override 
    protected void onPause() { 
     super.onPause(); 
     switch (result) { 
     case RESULT_OK: 
      // do stuff 
      break; 
     } 
    } 
} 

你也可以做一些與你使用任何Intent類似的東西。

你必須牢記這將被調用任何時候,你的Activity不再在前臺,不只是當你設置一個結果,並呼籲finish()

+0

我希望消除必須跟蹤另一個成員變量。進一步查看Android源代碼後,看起來這可能是實現它的唯一方法。 – 2011-02-06 01:46:44