Android LiveData Observer 多次调用

使用 Android Architecture Components,出现一个问题,LiveData的观察者Obsever会被多次调用。

 

我的写法是

private void loadData(FragmentActivity activity) {
        RfLoader.showLoading(activity);
        multiseriateDialogViewModel.doRequest(url, params).observe(activity, new Observer>() {
            @Override
            public void onChanged(List t) {
                if(t != null && !t.isEmpty()) {
                    beans.clear();
                    beans.addAll(t);
                    recyclerViewAdapter.notifyDataSetChanged();
                }
            }
        });
    }

即每调一次loadData,都会调一次LiveData的observe方法。

查看observe方法的源码发现,LiveData可以注册多个Observer。

 

Android LiveData Observer 多次调用_第1张图片

 

调用多次observe方法会注册多次,我的写法相当于重复注册同一个observer多次,当然会被回调多次,导致数据重复

你可能感兴趣的:(hadoop异常)