4

我在 Android 文档上看到:

公共无效 setRetainInstance(布尔保留)

自:API 级别 11 控制是否在 Activity 重新创建期间保留片段实例(例如来自 >configuration 更改)。这只能与不在后台堆栈中的片段一起使用。如果设置,>重新创建活动时,片段生命周期将略有不同:

谁能向我解释更多关于“这只能用于不在后堆栈中的片段”。我构建了一个简单的示例进行测试。我把片段放回堆栈。但是 setRetainInstance 方法仍然有效。我像这样把片段放到后台:

    FragmentTransaction transaction2 = getSupportFragmentManager().beginTransaction();
    
    MyFragment myFragment = new MyFragment();
    myFragment.setHasOptionsMenu(true);
    transaction2.replace(R.id.fragment_container, myFragment);
    transaction2.addToBackStack(null);
    transaction2.commit();

在我的片段 oncreate 方法中:

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setRetainInstance(true);

    Log.v("MyFragment", "onCreate");
}

我是片段的新手。请帮我解决这个问题。注意:我用过:SherlockFragment

4

0 回答 0