cursor.setNotificationUri() 和 getContentResolver().notifyChange(uri,null) 之间的区别
Difference between cursor.setNotificationUri() and getContentResolver().notifyChange(uri,null)
我是 android 的新手,谁能告诉我在实施内容提供程序时 cursor.setNotificationUri()
和 getContentResolver().notifyChange(uri,null)
有什么区别。
我看到 cursor.setNotificationUri()
在 query()
方法中使用,并且在更新或插入时使用 getContentResolver().notifyChange()
。
我不太了解 getContentResolver().notifyChange()
通知解析器某些数据已更改,但 cursor.setNotificationUri()
在那里做什么?
它们是共生的。如果你正在实现一个 ContentProvider
,基本上当有人查询你的提供者时,你会产生一个 Cursor
并用一些合理的 Uri
调用 setNotificationUri()
(例如 Uri
用于进行查询)。稍后,如果您的 ContentProvider
提供的数据发生变化,例如在 insert/update/delete 之后,您调用 getContentResolver().notifyChange(uri, null)
以便当前拥有 Cursor
的任何人(因为他们之前查询过)都会收到通知,数据已更改,他们应该重新查询。如果他们使用 CursorLoader
,重新查询会自动发生。
我是 android 的新手,谁能告诉我在实施内容提供程序时 cursor.setNotificationUri()
和 getContentResolver().notifyChange(uri,null)
有什么区别。
我看到 cursor.setNotificationUri()
在 query()
方法中使用,并且在更新或插入时使用 getContentResolver().notifyChange()
。
我不太了解 getContentResolver().notifyChange()
通知解析器某些数据已更改,但 cursor.setNotificationUri()
在那里做什么?
它们是共生的。如果你正在实现一个 ContentProvider
,基本上当有人查询你的提供者时,你会产生一个 Cursor
并用一些合理的 Uri
调用 setNotificationUri()
(例如 Uri
用于进行查询)。稍后,如果您的 ContentProvider
提供的数据发生变化,例如在 insert/update/delete 之后,您调用 getContentResolver().notifyChange(uri, null)
以便当前拥有 Cursor
的任何人(因为他们之前查询过)都会收到通知,数据已更改,他们应该重新查询。如果他们使用 CursorLoader
,重新查询会自动发生。