我是Android新手,任何人都可以告诉我实现内容提供程序时cursor.setNotificationUri()
和getContentResolver().notifyChange(uri,null)
之间的区别。
我看到在cursor.setNotificationUri()
方法中使用了query()
,并且在使用更新或插入getContentResolver().notifyChange()
时。
我很少理解getContentResolver().notifyChange()
通知解析器某些数据已被更改但cursor.setNotificationUri()
在那里做了什么?
答案 0 :(得分:13)
它们是共生的。如果您要实施ContentProvider
,主要是当有人向您的提供商提问时,您会生成一个Cursor
并在其上使用一些理性setNotificationUri()
调用Uri
(例如{{1}用于进行查询)。之后,如果您的Uri
投放的数据发生变化,例如在插入/更新/删除之后,您调用ContentProvider
,以便当前拥有getContentResolver().notifyChange(uri, null)
(因为他们之前查询过)的任何人都会收到数据已更改且应重新查询的通知。如果他们使用的是Cursor
,则会自动进行重新查询。