在启动子活动时防止操作系统杀死活动

时间:2010-06-18 10:16:20

标签: java android android-activity

我有一个主要活动,通过

调用一个孩子
Intent I = new Intent(this, Child.class);
startActivityForResult(I, 0);

但是,只要儿童变得可见,主要活动就会获得 onStop ,并在触发 onDestroy 方法之后立即执行。只要我在儿童活动中调用完成()或按后退按钮,儿童活动就会关闭,主屏幕会显示(而不是主要活动。)

如何防止主要活动被破坏? :\

3 个答案:

答案 0 :(得分:1)

如果您启动了期望返回数据的子Activity,则可能需要使用startActivityforResult

您可能需要查看此问题: Child Activity in Android,因为它似乎是同一个问题。

编辑:

至于此处发生的事情,您可以将代码置于onStop()和/或onDestroy()方法中进行调查 - 至少调用isFinishing()以检查活动被销毁的原因。
您还应该使用来自主机的adb logcat来检查logcat,以防它拥有更多信息 - 并且可能使用Log.d()(结果也会进入logcat)而不是toast,以确保您不会错过它们

答案 1 :(得分:0)

我使用Dialog而不是Activity,一切运行良好,所以我就这样离开了。

答案 2 :(得分:0)

检查androidmanifest nohistory = true并使操作系统在结果之前销毁活动。这可能是你遇到问题的原因之一。