Android应用程序生命周期混乱

时间:2012-04-02 19:03:23

标签: android android-lifecycle activity-lifecycle application-lifecycle

我有一个应用程序重复使用未知次数的活动。它运行

A> b1 || c1> B2 || c2> ...

如果我去> b1> b2> b1,我的应用程序仍在屏幕上显示b1列表,但如果我点击它,它会转到相应的b2活动。我用来保存b数据的arrayList需要为正确的b实例恢复。

我一直在阅读http://developer.android.com/reference/android/app/Activity.html#ActivityLifecycle 但我不认为onPause和onResume会起作用,因为我再次使用相同的活动。

1 个答案:

答案 0 :(得分:0)

这完全取决于你在活动之间移动的方式。

当你按回或finish()时,你会破坏你的活动。我相信在这种情况下你在b2上做finish()并返回b1。

将活动视为包含活动的实例的堆栈。您可以在堆栈中拥有多个相同活动的实例。

当你在a上并且你去b1时你的堆栈就像这样:

b1
a

当你去b2时,你的堆栈就像这样

b2
b1
a

然后,如果你为b1做另一个startActivity(),你就得到了

b1
b2
b1
a

然而,如果你做finish()或者你按回去你实际上会破坏b2然后你回到你从b1获得的第一个实例。请记住:在堆栈中,您可以拥有可以保存不同数据的活动实例。