Android:按下 "back"按钮时如何恢复列表数据?

标签 android android-activity

我的问题是关于在使用“后退”按钮返回 Activity 时恢复与复杂 Activity 相关的数据。 Activity A 有一个 ListView,它连接到用作其数据源的 ArrayAdapter - 这发生在 onCreate() 中。

  1. 默认情况下,如果我转到 Activity B 并按“后退”返回 Activity A,我的列表是否会保留所有数据,或者我只是获得屏幕的可视“副本”但数据丢失?
  2. 当涉及的不仅仅是 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/

相关文章:

java - 是否可以确定从 Activity 发回的数据是 String 还是 String[]?

android - 刷新 Activity 并重新打开

android - 将 Activity 对齐为左上角的对话框

Android LinearLayout 和 RecyclerView BottomNavigation 对齐

android - 谁能给我解释一下这段代码?

android - 使用 WebView 加载本地 .HTML 文件

android - 无法使用 Intent 从 ListActivity 启动新 Activity

android - 如何在 SupportMapFragment 中使用 View 绑定(bind)?

android - ActionBar 覆盖不工作

android - 使用谷歌地图后清除内存