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()
)。但我不知道保存活动实例是否安全。