使用CursorLoader更新ListViews是一种从数据库向UI显示数据的简单方法。模型修改传播到UI而没有额外的工作,可能效率不高。
RecyclerView.adapter提供更多粒度的访问权限,允许例如指定删除特定项目的适配器。
但是,调用那些首选方法(notifyItem *)的最佳位置是什么,替换notifyDataSetChanged?
显然,适配器不能观察contentProvider,否则它不会知道模型修改的性质(就像之前一样)。
可以使用不同的模式,例如添加总线以发布来自提供程序的修改,创建单个模型,该模型将保存对适配器的引用,可能使用演示者(在L中引入)或创建活动绑定服务。
这是一个常见的用例:同步过程在DB中插入一个条目(或者收到gcm通知,也在DB中插入一个条目),然后我希望通过调用来更新UI(如果已启动) notifyItemInserted。在哪里拨打这个电话?
感谢。