在某些情况下,我需要能够拆除我的应用程序堆栈中的所有活动,并根据配置更改重新创建它们。我通过首先为每个活动调用finish然后重新创建堆栈来完成此操作。
为了重新创建,我重申了我的根活动。在其onStart中,我创建了我的第二个活动。在我的第二个活动onStart中,我创建了我的第三个Activity。这确实有效,但我遇到的问题是,在观看屏幕时,您会看到创建的三个活动中的每个活动并激活到下一个活动中。我希望这个重建对用户不可见并隐藏这些过渡。有谁知道如何做到这一点?
答案 0 :(得分:1)
当配置发生变化时,Android已经负责重启活动。
如果您说您希望重新启动所有活动,即使它们当前不可见(Android会在用户返回它们并且它们变得可见时懒惰地执行此操作,如果此时配置仍然不同),那么没有简单的方法可以做到这一点。我无法想象你会想出任何不会变得非常难看的东西,因为要让平台重新启动你的活动,你需要让它变得可见,然后你就会闪烁起来。< / p>
事情并非打算以这种方式运作。这并不是你在Android上运行的任何其他应用程序的运行方式,所以如果你觉得这是你需要做的事情,那么解释为什么这样做会很有用我们可以告诉你一个更好的方法来实现你想要什么。 :)例如,如果你有一堆活动的状态从根本上联系在一起需要这个,请考虑使用碎片(或清理它)。
另一方面,如果你只是有一些配置的内部概念,并希望重新启动你的活动(例如在主题之间切换),那么有一个API,但它只是在Android中添加3.0:http://developer.android.com/reference/android/app/Activity.html#recreate()