我的程序“A1”中有一项活动。 在A1 onCreate中我使用intent调用android的活动(“A2”):
Intent contactPickerIntent = new Intent(Intent.ACTION_PICK,
ContactsContract.CommonDataKinds.Phone.CONTENT_URI);
startActivityForResult(contactPickerIntent, 1010);
当用户选择联系人时我想在A1中使用联系人信息。 一切都很好,但是......
当我在A2中使用“主页按钮”时,A1和A2在内存中使用,如果操作系统杀死A1(或者我可以从任务管理器执行),则A2正在运行,当我启动程序时,我看到一个OLD A2,当我选择一个联系人时我无法在A1中看到结果,因为新的A1启动并且需要新的A2。
问题是:当有人从记忆中杀死A1时,我怎么能杀死A2。
答案 0 :(得分:4)
您可以在父活动的onStop()方法中调用finishActivity(CHILD_ACTIVITY_REQUEST_CALL)。
在你的情况下:
public void onStop(){
finishActivity(1010);
}
答案 1 :(得分:0)
我不认为你的要求是可能的。
我的坏,正如nbarraille所指出的,这是可能的。我在下面说的,关于如何使用Android仍然可以使用。
然而,更重要的是,在使用Android系统时,这不是您应该做的事情。如果您仔细阅读有关活动的内容,特别是Activity Lifecycle的工作原理,您应该对基础知识有所了解。简而言之,Android不再需要“杀死”活动时负全部责任(其他正在运行的活动需要他们持有的资源)。
根据你在问题中的说法,当你第二次尝试启动A1时尝试拨打A2时,要说出导致问题的原因并不容易,但我觉得很确定它没有任何关系。你自己没有杀死A2。