我有一个应用程序重复使用未知次数的活动。它运行
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会起作用,因为我再次使用相同的活动。
答案 0 :(得分:0)
这完全取决于你在活动之间移动的方式。
当你按回或finish()
时,你会破坏你的活动。我相信在这种情况下你在b2上做finish()
并返回b1。
将活动视为包含活动的实例的堆栈。您可以在堆栈中拥有多个相同活动的实例。
当你在a上并且你去b1时你的堆栈就像这样:
b1
a
当你去b2时,你的堆栈就像这样
b2
b1
a
然后,如果你为b1做另一个startActivity()
,你就得到了
b1
b2
b1
a
然而,如果你做finish()
或者你按回去你实际上会破坏b2然后你回到你从b1获得的第一个实例。请记住:在堆栈中,您可以拥有可以保存不同数据的活动实例。