我在项目中使用数据绑定。在一个片段中,我正在使用DataBinding,如下所示
public class ExampleFragment extends Fragment {
private FragmentExampleBinding mFragmentExampleBinding;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
//initializing data binding object
mFragmentExampleBinding = DataBindingUtil.inflate(inflater, R.layout.fragment_example, container, false);
// is there any posibility that mFragmentExampleBinding can be null
View view = mFragmentExampleBinding.getRoot();
return view;
}
}
我的问题是,数据绑定对象是否有可能返回null?使用数据绑定时,我们真的需要做空检查吗?
答案 0 :(得分:0)
通常它是非常值得信赖的,我不需要每次都检查它。
https://developer.android.com/reference/android/databinding/DataBindingUtil#inflate
* @return The newly-created binding for the inflated layout or <code>null</code> if * the layoutId wasn't for a binding layout.
但是如果xml中有错误,则它可以为null。
但是,如果您决定清除onDestroyView
(将绑定设置为null)中的视图引用以避免内存泄漏,则确实需要进行null检查或抛出异常,以防在视图后访问绑定被摧毁。
至少到目前为止,当使用一个活动和多个片段架构时,我必须将绑定(和其他视图引用)设置为null以避免内存泄漏。