追加と置換の違いは、前のフラグメントが一時停止または停止されていない場合に追加されることです。一方、フラグメントを置き換えようとすると、前のフラグメントは一時停止と停止のサイクルを経ます。しかし、それをスタックに入れると、前のフラグメントがスタックの一番上に保存されます。そして、バックプレスなどのイベントで取得およびロードされます。
したがって、ソリューションで UI を停止またはアンロードしないようにする必要がある場合は、UI を非表示にして、その上にフラグメントを追加する必要があります。または、フラグメントをアンロードしても問題がなく、何らかのタイプのパラメーターを使用して UI を再生成できる場合。したがって、フラグメントメモリ自体に、保持する必要がある統計を決定するパラメーターを含めることができます。デフォルトでは、何らかのデフォルト状態を保持しようとします。ただし、オブジェクトを作成してフラグメントにアタッチすることはできます。
onSaveInstanceState に関しては、フラグメントを含むアクティビティ、つまりホーム プレスなどのイベントが閉じられたときに呼び出されます。
例えば
public class MainActivityFragment1 extends Fragment {
int alreadyCreated = 0;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
if (alreadyCreated == 1) { // restoreLayout();
Log.i("MainActivity", " Fragment already created and can be restored Fragment 1");
}else
Log.i("MainActivity", " Running Once Fragment 1");
alreadyCreated = 1;
01-07 16:08:07.009: I/MainActivity(14722): Running Once Fragment 1
01-07 16:08:09.239: I/MainActivity(14722): MainActivity I on pause
01-07 16:08:09.239: I/MainActivity(14722): MainActivity I on stop
01-07 16:08:09.239: I/MainActivity(14722): Running Once Fragment 2
01-07 16:08:13.499: I/MainActivity(14722): Back Pressed
01-07 16:08:13.619: I/MainActivity(14722): MainActivity II on pause
01-07 16:08:13.619: I/MainActivity(14722): MainActivity II on stop
01-07 16:08:13.619: I/MainActivity(14722): MainActivity II on stop
01-07 16:08:13.619: I/MainActivity(14722): MainActivity II on stop
01-07 16:08:13.619: I/MainActivity(14722): Fragment already created and can be restored Fragment 1