Android 默认情况下是否使用savedInstanceState保存片段?

Android 默认情况下是否使用savedInstanceState保存片段?,android,facebook,android-fragments,Android,Facebook,Android Fragments,我继续读下去 onsaveinstancestate为您提供应用程序先前状态的捆绑(如果屏幕方向发生更改) 我查看了Android docs(),发现必须手动将要保存为键值对的值放入其中 static final String STATE_SCORE = "playerScore"; static final String STATE_LEVEL = "playerLevel"; ... @Override public void onSaveInstanceState(Bundle

我继续读下去 onsaveinstancestate为您提供应用程序先前状态的捆绑(如果屏幕方向发生更改)

我查看了Android docs(),发现必须手动将要保存为键值对的值放入其中

    static final String STATE_SCORE = "playerScore";
static final String STATE_LEVEL = "playerLevel";
...

@Override
public void onSaveInstanceState(Bundle savedInstanceState) {
    // Save the user's current game state
    savedInstanceState.putInt(STATE_SCORE, mCurrentScore);
    savedInstanceState.putInt(STATE_LEVEL, mCurrentLevel);
我的问题是,对于片段,它们是否会在方向更改和活动重新创建时自动重新连接?您是否需要将代码保存到捆绑包中? 下面是我试图理解的facebook代码

 @Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);

if (savedInstanceState == null) {
    // Add the fragment on initial activity setup
    mainFragment = new MainFragment();
    getSupportFragmentManager()
    .beginTransaction()
    .add(android.R.id.content, mainFragment)
    .commit();
} else {
    // Or set the fragment from restored state info
    mainFragment = (MainFragment) getSupportFragmentManager()
    .findFragmentById(android.R.id.content);
}

}

要在活动被销毁时保留片段,以便它自动重新访问,您应该调用

Fragment.setRetainInstance(true)
在片段的构造函数中。
默认情况下,
onSaveInstanceState()

中没有保存任何内容,因此默认情况下不会保留它们?我也是这么想的。构造函数是什么意思?你是指oncreate生命周期方法吗?不,我是指片段的构造函数。如果你设置了retainInstance(true)在它中,活动被销毁,片段不会被销毁。在片段中根本没有提到这一点。你知道为什么吗?我不知道,但你可以参考这里