有什么方法可以保证Attach会工作吗?
@Override
public void onAttach(Activity activity) {
super.onAttach(activity);
}
如果我稍后在片段中调用getActivity(),我应该关注并始终这样做:
if(getActivity()!=null)
如果它为空,我该怎么办?
片段流的顺序是:
答案 0 :(得分:1)
如果我稍后在片段中调用getActivity(),我应该关注并始终这样做:if(getActivity()!= null)
这将取决于"以后在片段中的性质"。在主应用程序线程中,在对onAttach()
和onDetach()
的调用之间,getActivity()
应返回非null
值。但是:
如果您的片段正在管理AsyncTask
或其他后台线程,则在发生附加/分离时(例如,配置更改),该线程上的调用可能正在进行,因此这样的后台线程不应该试图引用活动
如果您的方法不确定是在onAttach()
和onDetach()
之间调用的,请练习防御性编程并验证您从Activity
获取的内容getActivity()
不是null
如果它为空,我该怎么办?
优雅地失败。除此之外,我们无法为您提供建议,因为我们不知道您要对此活动做些什么。