0

Fragment有一个名为getActivity()返回片段当前关联的活动的方法。

不使用此方法是否安全,而是将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();
    }
}

这两种方法有什么区别吗?哪个更好?

PS。第二种方法的一个好处是您不必在每次使用活动时都进行类型转换(如(MainActivity) getActivity())。但我不知道保存活动实例是否安全。

4

1 回答 1

1

好的,可以。我几乎总是这样做是为了避免每次调用方法 getActivity() 和转换结果(以获得更好的性能和更好的代码)

于 2013-06-30T04:34:59.867 回答