我有以下情形(注意,活動一個有launchMode="singleTop"
):活動結果不被記住?
- 活動一個上的活動乙電話
startActivityForResult()
; - 活性B關於Ç調用
startActivity()
,之後setResult(RESULT_OK)
和finish()
;在這一點上,onActivityResult()
在A是不是調用。 - 活動Ç調用
startActivity()
使用FLAG_ACTIVITY_CLEAR_TOP
和finish()
甲;
這是我的問題發生的地方。在這一點上,A的onActivityResult()
被稱爲requestCode
,但不是RESULT_OK
作爲resultCode
。我期待它收到RESULT_OK
,因爲我已將它設置在B(已啓動結果)。
爲什麼我會得到RESULT_OK
以外的東西?
所有其他活動(在我的情況下,** B **)已經完成並且'setResult(RESULT_OK);'。它不應該覆蓋我的結果。 – Felix 2011-06-07 11:58:44
我最終讓我的** C **活動直接啓動** A **並放棄了整個基於結果的邏輯。我想過關於'startActivityForResult()'調用的鏈接,但是在我的情況下這是不可能的,因爲** C **是一個更通用的活動,在其他情況下也可以重用。 – Felix 2011-06-07 12:41:51
最後一句話:如果你在通過''startActivityForResult''沒有啓動的時候調用''setResult''和''finish'',沒有任何事情發生(沒有''onActivityResult''被調用),所以我猜你可以重用活動C沒有任何問題。 – 2011-06-07 13:42:04