0

FragmentgetActivity()フラグメントが現在関連付けられているアクティビティを返すという名前のメソッドがあります。

このメソッドを使用せずにActivityインスタンスをonAttach(Activity)メソッドに保存しても安全ですか?

たとえば、次のように変更します。

public class MyFragment extends Fragment {
    public void foo() {
        ((MainActivity) getActivity()).foo();
    }
}

に:

public class MyFragment extends Fragment {
    private MainActivity activity;
    public void onAttach(Activity activity) {
        this.activity = (MainActivity) activity;
    }
    public void foo() {
        this.activity.foo();
    }
}

これら2つのアプローチに違いはありますか? どちらが良いですか?

PS。2 番目のアプローチの利点の 1 つは、アクティビティ ( など) を使用するたびに型変換を行う必要がないことです(MainActivity) getActivity()。しかし、アクティビティ インスタンスを保存しても安全かどうかはわかりません。

4

1 に答える 1