2011-06-26 61 views
4

裏面MainActivity.java之前,我提出以下電話:onActivityResult被調用的onDestroy

Intent activity = new Intent(this, CameraDetectionActivity.class); 
startActivityForResult(activity, request); 

而在內部CameraDetectionActivity某些時候,我運行下面的2行(全部發生在GUI線程):

setResult(Activity.RESULT_OK); 
finish(); 

我期望onDestroy在MainActivity中的onActivityResult之前被調用,但它們被調用的順序相反。 任何想法爲什麼發生這種情況?

回答

9

onDestroy在稍後的某個時間點被調用,並且這可能是任意長的。我們希望儘快恢復下一個活動,以便用戶界面位於此處,然後只在UI切換後停止並銷燬以前的活動。

+0

謝謝。但是,當兒童活動被徹底摧毀時,是否有辦法發現/被發現? – Frank

+1

我通過在內部活動的「onDestroy」中發送廣播意圖,並由外部活動的broadcastreceiver捕獲來實現它。奇蹟般有效! – Frank

相關問題