2010-12-09 78 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。