今天看了很多关于ContentProvider,Cursor,CursorAdapter之间的关联机制,包括源码,于是在这画了个图总结一下。
Statement:
其中黄色的表示下一步的函数来自那个类,及相关介绍,绿色的表示主线,也就是关系串联起来的主要节点,其余的是相关过程的详细的源码。
在说一下这两个观察者的特点:
contentObserver是一个提前通知,这时候只是通知cursor说,我的内容变化了。
datasetObserver是一个后置通知,只有通过requery() deactivate() close()方法的调用才能获得这个通知。
因此,最为重要的还是ContentObserver,它可以告诉你数据库变化了,当然如果你要在更新完Cursor的dataset之后做一些
事情,datasetObserver也是必需的。