【问题标题】:Android fragment transactions - do they restore state of all objects or just views?Android片段事务-它们是恢复所有对象的状态还是仅恢复视图?
【发布时间】:2016-10-13 05:40:19
【问题描述】:

我想知道当一个fragment恢复时,Android系统到底恢复了什么。是仅在 onCreateView() 中创建的 rootView 还是片段类中的所有对象?

根据docs,我们知道片段管理器会自动恢复片段的状态?但这是唯一的视图状态吗?

注意:片段事务只能在活动保存其状态之前创建/提交。如果您尝试在 Activity.onSaveInstanceState() 之后(以及在随后的 Activity.onStart 或 Activity.onResume() 之前提交事务,您将收到错误消息。这是因为框架负责保存您当前的片段在状态中,如果在保存状态后进行更改,则它们将丢失

我必须使用吗

saveFragmentInstanceState(Fragment f)

如果我想保存我的非视图对象?

【问题讨论】:

    标签: android android-fragments


    【解决方案1】:

    如果你想特别保存任何东西,你应该像这样覆盖 onSaveInstanceState():

    @Override
    public void onSaveInstanceState(Bundle outState) {
        super.onSaveInstanceState(outState);
        outState.putInt("TAG_OF_YOUR_CHOICE", yourIntVariable); //This is to save an int
    }
    

    有关默认方法的作用的更多信息,read the documentation

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-04-04
      • 2014-04-25
      • 1970-01-01
      • 2015-10-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多