android

时间:2018-12-19 10:26:43

标签: android android-databinding

我在项目中使用数据绑定。在一个片段中,我正在使用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?使用数据绑定时,我们真的需要做空检查吗?

1 个答案:

答案 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以避免内存泄漏。