0

私はAndroidのドキュメントとWeb上のさまざまなソースを見てきましたが、アクティビティの再作成全体でアプリにデータを保持させることができないようです(戻るボタンを押して終了し、アイコンからアプリに入るなど)またはタスクマネージャ)。

メインのクラス (FragmentActivity を拡張)、フラグメント、およびアプリがアクティブでないときにバックグラウンドで実行する必要があるクラス、およびアクティビティが作成された後にフラグメントを更新する必要があるクラスの 3 つのクラスがあります。

ここに私の情報源があります:

主要

public class Main extends FragmentActivity {

    private FragmentExample mFragment;
    private BackgroundClass bgClass = new BackgroundClass();

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

        manageFragment(getSupportFragmentManager());
    }

    protected void manageFragment(FragmentManager fm) {

        mFragment = (FragmentExample) fm.findFragmentByTag("TAG");

        if (mFragment == null) {
            mFragment = new mFragment();
            fm.beginTransaction().add(mFragment,"TAG").commit();
        }

        else fm.beginTransaction().attach(mFragment).commit();
    }


    @Override
    protected void onStart() {
        super.onStart();
        mFragment = bgClass.update(mFragment);
    }
}

断片

public class FragmentExample extends Fragment {

    //declare variables

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

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        View view = inflater.inflate(R.layout.fragment, container, false);

        //initialize variables from View

        return view;
    }

    @Override
    public void onActivityCreated(Bundle savedInstanceState) {
        super.onActivityCreated(savedInstanceState);
        //more initializations
    }
}

BackgroundClass

public class BackgroundClass extends SomeOtherClass {

    //declare variables

    protected FragmentExample update(final FragmentExample fExample) {
        //update listeners, variables, etc
        return fExample;
    }

//Overridden methods from SomeOtherClass

}

現在、構成を変更した場合 (つまり、画面を回転させた場合) にのみデータが更新されます。どんな種類の助けも素晴らしいでしょう。

4

0 に答える 0