Android:按“后退”按钮时如何恢复列表数据?
我的问题是关于在使用“后退”按钮回到活动时恢复复杂的活动相关数据。 活动A有一个连接到ArrayAdapter的ListView作为其数据源 - 这发生在onCreate()中。Android:按“后退”按钮时如何恢复列表数据?
- 默认情况下,如果我移动到活动B并按下“返回”以返回到活动A,我的列表是否保持与所有数据完好无损,或者只是获得了屏幕的可视“复制”丢失了吗?
- 当涉及多项活动时,我该怎么办?假设活动A开始活动B,它开始活动C,然后我按两次“返回”到达A.如何确保A的完整性数据回到前台? PrefsManager似乎并不直观地处理复杂的对象。
谢谢,罗布
活性A具有一个ListView是 连接ArrayAdapter用作 其数据源
注意,一个ArrayAdapter
不是持久存储中。
默认情况下,如果我移动到活动B ,然后按“返回”回到 活动A,请问我的名单留在所有的数据完整 还是我刚刚得到的 视觉上的“复制”屏幕但 数据丢失?
这取决于。
通常,Activity
A没有去过任何地方。但是,如果用户长时间离开应用,则Android可能会销毁Activity
A,在活动堆栈中留下占位符以释放内存。如果稍后用户按BACK,则Android将重新创建Activity
答。在这种情况下,您需要使用持久存储(文件,数据库等)或使用onSaveInstanceState()
和onRestoreInstanceState()
来挂起数据。
您可以在活动类描述的Activity Lifecycle部分找到更多信息。
除非你主动finish()
活动A,当您启动活动B,它的数据和状态都将当你有多少活动叠加起来返回不管它,存在。
这不一定是正确的。 Android可能会选择销毁该活动以释放RAM以进行其他处理。 – CommonsWare 2010-03-15 15:02:21
谢谢你的回复,David。 – Rob 2010-03-16 07:25:00
非常感谢您的回复。 – Rob 2010-03-16 07:25:29