Где фрагмент сохраняет свое состояние, когда FragmentTransaction.Replace?

Backgroud: у меня есть меню слева и другое прокручиваемое содержимое справа. Я хотел сохранить прокрученную позицию. Но я потерпел неудачу. Затем...

Я установил очень простой проект, чтобы проверить его.

В словах, у меня есть меню слева, а другое содержимое, содержащее <EditText> справа. (того же класса, хотя они имеют разные экземпляры)

В кодах, (очень просто)

content.xml

<EditText xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/text"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:hint="Please save my text ..." />

ContentFragment.java

package ... import ...

public class ContentFragment extends Fragment {
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        return inflater.inflate(R.layout.content, container, false);
    }

    @Override
    public void onSaveInstanceState(Bundle outState) {
        super.onSaveInstanceState(outState);
        System.out.println("Why this is NOT called ?");
        Log.v("onSaveInstanceState()", "outState = " + outState);
    }
}

и сгенерированная программа MenuFragment.java

package ... import ...

public class MenuFragment extends ListFragment {
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setListAdapter(new ArrayAdapter<String>(getActivity(), android.R.layout.simple_list_item_1, new String[]{"Item 1", "Item 2", "Item 3"}));
    }
    @Override
    public void onListItemClick(ListView l, View v, int position, long id) {
        ((MainActivity) getActivity()).click();
    }
}

Наконец, наш MainActivity.java

package ... import ...

public class MainActivity extends FragmentActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        if (savedInstanceState == null)
            getSupportFragmentManager().beginTransaction()
                    .add(R.id.menu, new MenuFragment()).commit();
    }
    public void click() {
        getSupportFragmentManager().beginTransaction()
                .replace(R.id.content, new ContentFragment()  // everytime load a new instance
                ).addToBackStack(null).commit();
    }
    @Override
    protected void onSaveInstanceState(Bundle outState) {
        super.onSaveInstanceState(outState);
        System.out.println("... and this is NOT called neither :-/");
        Log.v("onSaveInstanceState()", "outState = " + outState);
    }
}

Чтобы протестировать его, НЕ вращайте устройство.

Сначала выберите элемент из меню, затем введите что-то в текстовое поле. Затем выберите другой элемент и введите что-то еще. Повторите несколько раз. Затем перейдите назад и...

вы найдете свои ранее напечатанные тексты СОХРАНЕНЫ!!!

Не удивительно, что тексты сохранены...

Но удивительно, что тексты сохраняются со всеми функциями onSaveInstanceState(), которые не вызываются.

Когда Android сохранил их, а replaced - FragmentTransaction?

Если я хочу дополнительно сохранить некоторые данные в каждом экземпляре Fragment (например, в позиции прокрутки), куда мне поместить мои коды?