Android - 在不同活动之间切换时保存当前的 onCreate 状态

问题描述

我是 java 和 android studio 的新手,在阅读文档后,我仍然对 Activity 生命周期以及如何有效使用它有些困惑。

我正在构建一个包含多项活动的应用程序。在主活动中首次打开应用程序时会加载关键数据。但是,当我移动到另一个活动然后返回主活动时,再次调用了我不想要的 onCreate。我知道有一种方法可以保存您的 onCreate 实例,但我仍然不确定如何执行此操作。这是我所做的:

select id,name,datediff(max(date),min(date)) as num_days
from t
group by id,name;

希望得到任何形式的支持和指导。谢谢。

解决方法

再次 - 不是一个简单的问题。

首先:是的,您可以通过覆盖:onSaveInstanceState() 来保存“来自上次会话”的数据,并通过覆盖 onRestoreInstanceState(savedInstanceState: Bundle?) 来恢复数据。看这里:https://developer.android.com/guide/components/activities/activity-lifecycle#saras

其次:根据您的描述,您似乎需要更多的 SharedPreferences。如果您需要任何东西的密钥,并且应该从应用程序打开直到它被杀死或用户注销时使用它,SharedPreferences 是最常见的解决方案。

onSaveinstanceState() 的创建是为了能够记住“上次会话中”屏幕上的内容,而无需再次“计算”它。例如 EditText.text 或 ImageView.url 或类似的。

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...