0

这是我现在一直在使用的一种做法,但它似乎已被弃用,文献似乎说当屏幕进入后台或旋转时保存和恢复数据的正确方法是碎片。

我想听听你对此的看法

我在我的应用程序中一直在做的是创建一个我称之为 ApplicationDataHolder() 的类

这包含定义每个活动状态的所有变量和存储在其中的片段。

例如,我有一个活动,它显示了一个工单列表和两个小部件,一个用于对工单进行排序,一个用于选择它是升序还是降序。

为此,我在我的 DataHolder() 中创建了变量 List _tickets、SortOrder _order 和 boolean _ascending 并赋予它们默认值

每当第一次重新创建/创建活动时,我都会访问这些变量以设置默认值(默认排序顺序是什么,初始列表是什么)

这不是最佳方式吗?这会导致问题(例如在屏幕旋转太多次之后)使用片段或 saveinstancestate/restoreinstancestate 有什么好处?

提前感谢您提供的任何帮助

4

1 回答 1

1

当屏幕进入后台或旋转时,保存和恢复数据的正确方法是片段

在这里,他们谈论的是动态获取的数据,可以是来自用户的输入数据,也可以是来自传感器或 Web 服务的数据。此数据需要在发生状态更改(例如旋转或标签滑动)时恢复onSaveInstanceState()onConfigurationChanged()

初始值当然可以保存在中央全局常量文件中,这没有错。

于 2015-03-08T11:39:16.680 回答