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

3
我正在创建一个应用程序,在启动时下载一些东西并向用户显示列表,但我不希望每次打开应用程序或用户切换到其他活动并返回时都重新下载列表。
为了解决这个问题,我使用静态变量。我读到它们的值仍然存在,直到程序关闭或它们不再使用且垃圾回收器完成工作。
所以,我的问题是:
这两种方式之间有很大的区别吗?还是我做错了?
我应该使用Android提供的Saved Instance State来保存这些变量,还是静态变量可以胜任?
请注意,我不能将此数据保存超过一天的时间,因此无法将其保存到数据库中。
谢谢。
1个回答

2
是的,它们之间有很大的区别。即使Android终止应用程序,它也可以保留保存的状态信息,以便可以在用户离开的最后一个位置恢复它(例如从最近使用的应用程序列表中)。对于静态变量,一旦进程终止,数据就会丢失。
保存的状态确实是为Activity或Fragment特定的东西(如UI状态)而设计的,而不是用于大量数据。如果您正在从Web下载数据,则建议您查看持久数据存储选项,而不是使用静态变量。请参考:持久数据存储

2
基本上,Saved Instance States 可以在应用程序被杀死以节省内存时幸存下来,而静态变量则会消失?! - George

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接