2012-09-18 59 views
2

我有開始活動B的活性的延遲:onActivityResult調用由在其之間活動

activityA.startActivityForResult(new Intent(activityA, B.class), REQUESTCODE_B); 

在活動B按鈕點擊時,執行一種方法,其從A.即開始活動Ç

activityA.startActivityForResult(new Intent(activityA, C.class), REQUESTCODE_C); 

在一個按鈕中點擊活動C,通過調用finish()關閉按鈕,而B保持活動狀態。

現在我期望調用activityA的onActivityResult()方法,但它只在activityB完成後調用。我可以想象這是設計,但是有沒有辦法直接讓activityA知道activityC已經完成?沒有活動B或C必須明確知道A?

回答

1

這是非常糟糕的做法。當您啓動ActivityC時,您無法確定AndroidA未銷燬ActivityA。 Android可以隨時銷燬後臺活動。當你調用ActivityC.finish()時,ActivityA可能不存在。然後,當您調用ActivityB.finish()時,Android會從活動堆棧創建ActivityA,併爲完成的活動調用onActivityResult()方法(我不確定以何種順序)。告訴我們你無法將ActivityC的結果返回給ActivityB的原因。

+0

我想你是對的。我試圖管理活動A中的所有活動(B和C更像對話框),但我必須修改我的設計。 – Kretep

相關問題