2010-12-09 130 views
4

我的程序「A1」中有一項活動。 在A1的onCreate我使用意圖調用Android的活動(「A2」):父母活動停止後完成孩子活動

Intent contactPickerIntent = new Intent(Intent.ACTION_PICK, 
       ContactsContract.CommonDataKinds.Phone.CONTENT_URI); 

     startActivityForResult(contactPickerIntent, 1010); 
當用戶選擇一個聯繫人,我想使用A1聯繫人信息

。 一切正常,但...

當我在內存中使用A2,A1和A2 stil中的「home button」,並且如果OS終止A1(或者我可以從任務管理器執行),A2仍然運行當我開始我的計劃時,我看到一箇舊的A2,當我選擇一個聯繫人時,我不能在A1中看到結果,因爲新的A1已經開始,它要求新的A2。

問題是:如果有人從內存中殺死A1,我該如何殺死A2。

回答

4

您可以在父活動的onStop()方法中調用finishActivity(CHILD_ACTIVITY_REQUEST_CALL)。

你的情況:

public void onStop(){ 
    finishActivity(1010); 
} 
+0

幾乎我想要什麼,謝謝 – dilix 2010-12-09 13:36:12

0

我不認爲你問的是可能的。
我的壞,正如nbarraille指出,這是可能的。我在下面說的,關於如何與Android合作仍然有效。

但是,更重要的是,這不是你在使用Android系統時應該怎麼做的事情。如果您閱讀了一些關於活動的內容,特別是如何運作,您應該瞭解一些基本知識。簡而言之,當Android不再需要時(和其他正在運行的活動需要他們擁有的資源),Android將「殺戮」活動承擔全部責任。

從你在你的問題中所說的內容來看,當你嘗試在第二次啓動A1時打電話給A2並不容易,但我很確定它沒有任何事情要做你自己並沒有殺死A2。