我们如何保证onAttach始终有效(Fragment)?

时间:2015-03-23 16:15:44

标签: java android android-activity fragment

有什么方法可以保证Attach会工作吗?

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

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

if(getActivity()!=null)

如果它为空,我该怎么办?

片段流的顺序是: enter image description here

1 个答案:

答案 0 :(得分:1)

  

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

这将取决于"以后在片段中的性质"。在主应用程序线程中,在对onAttach()onDetach()的调用之间,getActivity()应返回非null值。但是:

  • 如果您的片段正在管理AsyncTask或其他后台线程,则在发生附加/分离时(例如,配置更改),该线程上的调用可能正在进行,因此这样的后台线程不应该试图引用活动

  • 如果您的方法不确定是在onAttach()onDetach()之间调用的,请练习防御性编程并验证您从Activity获取的内容getActivity()不是null

  

如果它为空,我该怎么办?

优雅地失败。除此之外,我们无法为您提供建议,因为我们不知道您要对此活动做些什么。