0

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

a> b1||c1 > b2|| c2 > ...

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

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

4

1 回答 1

0

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

当你按下或你做finish()你破坏你的活动。我相信在这种情况下你正在 finish()b2 上做,然后你回到 b1。

将活动想象成一个包含活动实例的堆栈。您的堆栈中可以有多个相同活动的实例。

当您在 a 并且您转到 b1 时,您的堆栈保持如下:

b1
a

当你去 b2 时,你的堆栈是这样的

b2
b1
a

startActivity()然后,如果您为 b1再做一次 ,您会得到

b1
b2
b1
a

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

于 2012-04-02T19:31:34.573 回答