我的问题是关于在使用“后退”按钮返回 Activity 时恢复与复杂 Activity 相关的数据。 Activity A 有一个 ListView,它连接到用作其数据源的 ArrayAdapter - 这发生在 onCreate() 中。
- 默认情况下,如果我转到 Activity B 并按“后退”返回 Activity A,我的列表是否会保留所有数据,或者我只是获得屏幕的可视“副本”但数据丢失?
- 当涉及的不仅仅是 Activity 时我能做什么?假设 Activity A 启动 Activity B, Activity B 启动 Activity C,然后我按两次“后退”以到达 A。当 A 返回前台时,如何确保 A 数据的完整性? PrefsManager 似乎不能非常直观地处理复杂对象。
谢谢,罗布
最佳答案
Activity A has a ListView which is connected to ArrayAdapter serving as its data source
请注意,ArrayAdapter
不是持久存储。
By default, if I move to activity B and press "back" to get back to activity A, does my list stay intact with all the data or do I just get visual "copy" of the screen but the data is lost?
视情况而定。
通常,Activity
A 没有去任何地方。但是,如果用户长时间离开应用程序,Android 可能会销毁 Activity
A,在 Activity 堆栈中留下一个占位符,以释放内存。如果稍后用户按下 BACK,Android 将重新创建 Activity
A。在这种情况下,您需要通过使用持久存储(文件、数据库等)或通过使用 onSaveInstanceState()
和 onRestoreInstanceState()
。
您可以在 Activity Lifecycle 中找到更多信息 Activity 类描述部分。
关于Android:按下 "back"按钮时如何恢复列表数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2447595/