我对contentProvide中使用的notifyChange machenism感到困惑:
// Tell the cursor what uri to watch, so it knows when its source data changes
c.setNotificationUri(getContext().getContentResolver(), uri);
和
getContext().getContentResolver().notifyChange(noteUri, null);
以下是问题(假设提供者和客户端在不同的包中):
请澄清
答案 0 :(得分:0)
我知道这是一个老问题。我正在回答,这对遇到这个问题的人很有帮助。
- Provider返回的contentResolver与客户端返回的Resolver相同吗?
醇>
是的,它是一样的。
- 游标是否与提供者和客户端返回的游标相同?
醇>
我想,你是在你的第一个代码片段的上下文中问这个,这个代码片段在query()方法中可见。在这里,您要在光标上设置通知uri,该通知将返回给客户端。因此,显然,客户端和提供者使用相同的游标。
- 要通知的Uri决议变更是什么?整个表uri还是一行?
醇>
Uri通知取决于操作:
insert() - 通知Uri是附加了表的Uri 新插入的行的ID。
delete()和update() - 这里,Uri是表Uri,附有已删除或更新的行的ID。