Android 不调用notifyDataSetChanged(),但数据仍在更改?RecyclerView和适配器的生命周期?

Android 不调用notifyDataSetChanged(),但数据仍在更改?RecyclerView和适配器的生命周期?,android,android-adapter,android-recyclerview,notifydatasetchanged,Android,Android Adapter,Android Recyclerview,Notifydatasetchanged,因此,我的问题似乎与我在这里遇到的所有其他问题相反 我有以下代码: RecyclerView RecyclerView=(RecyclerView)findViewById(R.id.recycler\u视图); recyclerView.setLayoutManager(新的LinearLayoutManager(本)); MyAdapter=新的MyAdapter(此); recyclerView.setAdapter(适配器); adapter.buildModels(); 因此,我首先

因此,我的问题似乎与我在这里遇到的所有其他问题相反

我有以下代码:

RecyclerView RecyclerView=(RecyclerView)findViewById(R.id.recycler\u视图);
recyclerView.setLayoutManager(新的LinearLayoutManager(本));
MyAdapter=新的MyAdapter(此);
recyclerView.setAdapter(适配器);
adapter.buildModels();
因此,我首先将适配器设置为Recycler视图,然后构建模型。因此,适配器中的getItemCount()在短时间内为0。 我从不在任何地方调用notifyDataSetChanged(),但在调用buildModels()之后,适配器开始显示模型。我在RecyclerView的源代码中看到了一些观察者

为了测试它是如何工作的,我还在adapter.buildModels()之后添加了一个方法“adapter.addOneMoreItem()”,并且适配器也知道如何显示新项

所以问题是:什么时候需要notifyDataSetChanged()呢?用例是什么? 有人知道RecyclerView和适配器的确切生命周期吗

评论: MyAdapter是常规适配器->
公共类MyAdapter扩展了RecyclerView.Adapter{}

RecyclerView.Adapter
可以被其他类“观察”。当您调用
RecyclerView.setAdapter()
时,它将调用适配器的
registerAdapterDataObserver()
。所以,适配器知道您输入了新数据


以下是源代码或
RecyclerView

RecyclerView。其他类可以“观察”适配器。当您调用
RecyclerView.setAdapter()
时,它将调用适配器的
registerAdapterDataObserver()
。所以,适配器知道您输入了新数据

以下是源代码或
RecyclerView

在绘制下一帧之前,所有这些代码(五行)都按顺序运行。在这一点上,RecyclerView实际上设置了所有内容。如果在没有通知的情况下在其他任何地方对适配器进行更改,它将崩溃(检测到不一致的状态)。所有这些代码(五行)在绘制下一帧之前按顺序运行。在这一点上,RecyclerView实际上设置了所有内容。如果您在没有通知的情况下在其他任何地方更改适配器,它将崩溃(检测到不一致的状态)。