2010-06-15 63 views
0

我有2個活動。在孩子的活動我已經把類似的東西在的onPause():爲什麼活動結果代碼是不同的,然後我期望

if (isFinishing()) { 
final Intent intent = new Intent(); 
intent.putExtra(SOME_DATA, value); 

setResult(RESULT_OK, intent); 
Log.i("test", "Result set to RESULT_OK"); 
} 

在父活動我檢查resultCode爲當子活動被破壞,這是我已經注意到:

  1. 如果我摧毀(在某些情況下,我調用finish()),然後resultCode是RESULT_OK
  2. 但是當我通過按回車鍵銷燬(我只在模擬器中它的ESC)殺死活動,然後resultCode讀入父onActivityResult方法等於0(RESULT_CANCELD)。

「測試」日誌在每種情況下讀取的情況都是一樣的。

回答

2

在onPause被調用到RESULT_CANCELED之後,最有可能是破壞您的活動的事件重置結果。這是有道理的,因爲活動確實不是愉快地完成。

通過始終將結果代碼設置爲RESULT_OK,您試圖完成什麼?

+0

哦,我忘了這個問題。 這不是很有幫助,但是你的答案很可能是問題的解釋,所以我會接受你的答案。 以及我如何解決問題:SharedPreferences;) – Fisher 2010-06-26 23:14:59

2

您不必在onPause方法中設置結果代碼。您可以在獲取數據的那一刻進行設置。每當您想要傳回第一個活動的數據發生變化時,只需設置結果代碼,然後以正確的方式返回到調用活動。

相關問題