保存的实例状态和静态变量之间的区别

Difference between Saved Instance State and Static variables

我正在创建一个应用程序,它在启动时会下载一些东西并向用户显示一个列表,但我不希望它在每次应用程序打开或用户更改为时重新下载列表一个不同的 activity 又回来了。

为了解决这个问题,我使用了静态变量。我读到它们的值仍然存在,直到程序关闭或它们未被使用并且垃圾收集器完成他的工作。

那么,我的问题是:

这两种方式区别大吗?还是我做错了? 我应该使用 Android 提供的保存实例状态来保存这些变量还是静态的来完成这项工作?

请注意,我可以将此日期保存超过一天的时间,因此无法将其保存到数据库中。

谢谢。

是的,有很大的不同。即使 Android 终止了应用程序,它也可以保留保存的状态信息,以便它可以在用户离开它的最后位置恢复(例如,从最近的应用程序列表)。使用静态变量,一旦进程终止,该数据就会消失。

保存的状态实际上是针对 Activity 或 Fragment 特定的东西(如 UI 状态),而不是针对大量数据。如果您从网络下载数据,我建议您查看 persistent data storage 选项而不是使用静态变量。