我有通过防止由于OS被杀害,而启动子活性
Intent I = new Intent(this, Child.class);
startActivityForResult(I, 0);
但只要儿童变得可见的主要活动获取其调用一个孩子一个主要活动的活动onStop并在此之后onDestroy方法触发。只要我打电话完成()内子活动或按后退按钮,子活动关闭和主屏幕显示(而不是主要活动)。
如何防止主要活动被破坏? :\
我有通过防止由于OS被杀害,而启动子活性
Intent I = new Intent(this, Child.class);
startActivityForResult(I, 0);
但只要儿童变得可见的主要活动获取其调用一个孩子一个主要活动的活动onStop并在此之后onDestroy方法触发。只要我打电话完成()内子活动或按后退按钮,子活动关闭和主屏幕显示(而不是主要活动)。
如何防止主要活动被破坏? :\
如果您启动期望返回数据的子Activity,则可能需要使用startActivityforResult
。
你可能想检查这个问题:Child Activity in Android,因为它似乎是同样的问题。
编辑:
至于这里发生了什么,你可以将代码在onStop()
和/或onDestroy()
方法研究 - 至少isFinishing()
调用检查为什么活动被销毁。
你也应该使用你主机上的adb logcat来检查logcat,以防万一它拥有更多的信息 - 并且可能使用Log.d()
(结果也变成logcat)而不是敬酒,以确保你不会错过它们。
那么,那个特定的问题是我的:DI只是转发了后续的一个因为我不知道这是发生的原因,我想做一个干净的版本:) 但正如你所看到的,我用过startActivityforResult;) – 2010-06-18 11:39:56
好吧,我会试试... – 2010-06-18 12:43:57
我使用了Dialog而不是一个Activity,一切都很好,所以我就这样离开它。
检查androidmanifest nohistory = true,这使操作系统在结果之前销毁活动。这可能是你的问题的原因之一。
我们需要看到更多的代码,这是不够的,因为这样你的MainActivity不应该被销毁。 – Machiel 2010-06-18 10:53:48