【发布时间】:2017-11-11 23:32:02
【问题描述】:
在 API 23 之前,我使用 Fragment 的 onAttach 方法来获取我的侦听器实例,然后在 onDetach 中清除引用。例如:
@Override
public void onAttach(Activity activity) {
super.onAttach(activity);
mListener = null;
try {
mListener = (SellFragmentListener) activity;
} catch (ClassCastException e) {
throw new ClassCastException(activity.toString()
+ " must implement SellFragmentListener");
}
}
@Override
public void onDetach() {
super.onDetach();
mListener = null;
}
在 onAttach(Context context) 中做同样的检查是否安全,或者有没有更好的方法来获取持有者活动实例?
【问题讨论】:
-
onActivityCreated? -
我通常在
onResume()/onPause()上做这种事情,特别是如果听众会做任何影响 UI 的事情。 -
@tibo 我认为 onActivityCreated 在将片段添加到现有活动时不会调用它。
-
@KevinKrumwiede 这也是一个选择!
-
是的,这是个好问题。这意味着文档 developer.android.com/training/basics/fragments/… 错误或不实际