我在 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