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()
)。但是我不知道保存活動實例是否安全。
同樣的事情。在onAttach()中引用活動可能會更優雅,以防您想要將某些內容傳回活動。 –