在 android 中使用单例存储数据不正确吗?

Is using a singleton to store data incorrect in android?

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

我想听听您对此的看法

我在我的应用程序中一直在做的是创建一个 class 我调用 ApplicationDataHolder()

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

例如,我有一个 activity 显示工单列表和两个小部件,一个用于对工单进行排序,另一个用于 select(如果它是升序或降序)。

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

每当 activity 第一次为 recreated/created 时,我访问这些变量以设置默认值(默认排序顺序是什么,初始列表是什么)

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

在此先感谢您提供的任何帮助

the correct way to save and restore data when the screen goes to the background or rotates is fragments

这里他们谈论的是动态获得的数据,无论是来自用户的输入数据还是来自传感器或网络服务的数据。当发生状态更改(例如旋转或制表符)时,需要使用onSaveInstanceState()onConfigurationChanged()恢复此数据滑动.

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