有什么办法可以保证onAttach正常工作吗?

@Override
public void onAttach(Activity activity) {
    super.onAttach(activity);
}


如果稍后在片段中调用getActivity(),我应该关注并始终这样做:

if(getActivity()!=null)


如果为null,该怎么办?

片段流的顺序为:

最佳答案

如果稍后在片段中调用getActivity(),我应该关注并始终这样做:if(getActivity()!= null)


那将取决于“后继片段”的性质。在主应用程序线程上的onAttach()onDetach()调用之间,getActivity()应该返回非null值。然而:


如果您的片段正在管理AsyncTask或其他后台线程,则可能在进行附加/分离时(例如,配置更改)对该线程进行了调用,因此此类后台线程不应尝试引用该活动。
如果不确定在onAttach()onDetach()之间调用的方法,请练习防御性编程并验证从Activity返回的getActivity()不是null



如果为null,该怎么办?


正常失败。除此之外,我们无法为您提供建议,因为我们不知道您打算如何进行这项活动。

08-17 16:49