Android:如何保存应用程序范围的实例状态?

标签 android

关于应用程序范围的状态,我已经阅读了很多关于 POJO 单例与子类化应用程序类的讨论。

关于保存状态,我了解了 Activity.onSaveInstanceState。

但由于 Application 并没有真正的生命周期方法,我该如何保存从多个 Activity 使用的状态?

我的第一个想法是在我的主 Activity 中使用 onCreate() 和 onSaveInstanceState(),但是如果用户在另一个 Activity 中暂停应用程序会怎样?当应用回到前台时,只会重新创建此 Activity ,而不是我的主要 Activity ,对吗?

我是否必须在所有 Activity 中执行相同的 onSaveInstanceState 和 onCreate,还是有其他方法?

最佳答案

how can I save state which is used from several Activities?

当数据改变时更新你的持久存储。根据定义,不存在“从多个 Activity 中使用”的“实例状态”。

My first idea was to use onCreate() and onSaveInstanceState() in my main Activity, but what happens if user pauses app while being in another Activity?

最终,您的流程会终止。 “实例状态”(例如,onSaveInstanceState())可能稍后会根据情况再次提供给您。任何你绝对需要保留的东西都需要放入持久存储(数据库、SharedPreferences、文件),通常是在数据更改时,就像过去 60 年的软件编写方式一样年。

关于Android:如何保存应用程序范围的实例状态?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16100550/

相关文章:

android - 意外的断言行为

android - Android 上的共享首选项

java - Android ClassCastException 与 TreeMap 比较

java - 随机生成形状和颜色并绘制到 Canvas 上

android - Activity 生命周期以及如何清理临时文件

android - 使用 Nodejs + SocketIO 时丢弃传输错误

java - 为什么要将多个接口(interface)放在一个 Android 应用程序的 Java 文件中?

android - 亚行错误 : cannot connect to daemon

android - 在androidx.fragment.app.Fragment中,setUserVisibleHint()被弃用了,并且没有被执行,为什么?

android - PhoneGap SplashScreen - splash 无法解析或不是一个字段