这是我现在已经使用了一段时间的做法,但它似乎已被弃用,文献似乎说当屏幕转到后台或旋转时保存和恢复数据的正确方法是片段。
我希望你对此有所了解
我在我的应用中做的是创建一个我称之为ApplicationDataHolder()的类
这包含所有变量,用于定义存储在其中的每个活动和片段的状态。
例如,我有一个活动,显示一个票证列表和两个小部件,一个用于对票证进行排序,另一个用于选择它是升序还是降序。
为此我在DataHolder()中创建了变量List _tickets,SortOrder _order和boolean _ascending,并给出了默认值
每当第一次重新创建/创建活动时,我会访问这些变量来设置默认值(默认排序顺序是什么,初始列表将是什么)
这不是最佳方式吗?这可能会导致问题(例如在屏幕旋转太多次之后)使用片段或saveinstancestate / restoreinstancestate对此有什么好处?
提前感谢您提供的任何帮助
答案 0 :(得分:1)
屏幕进入时保存和恢复数据的正确方法 背景或旋转是片段
这里他们谈论的是动态获得的数据,无论是来自用户的输入数据还是来自传感器或网络服务的数据。当发生状态更改时,需要使用onSaveInstanceState()
和onConfigurationChanged()
还原此数据,例如轮播或标签滑动。
初始值当然可以保存在一个中心的全局常量文件中,没有任何问题。