cursor.setNotificationUri()和getContentResolver()之间的差异.incomeChange(uri,null)

时间:2016-11-08 07:15:39

标签: android android-contentprovider android-cursor

我是Android新手,任何人都可以告诉我实现内容提供程序时cursor.setNotificationUri()getContentResolver().notifyChange(uri,null)之间的区别。

我看到在cursor.setNotificationUri()方法中使用了query(),并且在使用更新或插入getContentResolver().notifyChange()时。

我很少理解getContentResolver().notifyChange()通知解析器某些数据已被更改但cursor.setNotificationUri()在那里做了什么?

1 个答案:

答案 0 :(得分:13)

它们是共生的。如果您要实施ContentProvider,主要是当有人向您的提供商提问时,您会生成一个Cursor并在其上使用一些理性setNotificationUri()调用Uri(例如{{1}用于进行查询)。之后,如果您的Uri投放的数据发生变化,例如在插入/更新/删除之后,您调用ContentProvider,以便当前拥有getContentResolver().notifyChange(uri, null)(因为他们之前查询过)的任何人都会收到数据已更改且应重新查询的通知。如果他们使用的是Cursor,则会自动进行重新查询。