首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >当为给定的URI调用ContentResolver.notifyChange()时,会通知ContentObservers观察此URI的后代URI吗?

当为给定的URI调用ContentResolver.notifyChange()时,会通知ContentObservers观察此URI的后代URI吗?
EN

Stack Overflow用户
提问于 2011-07-13 19:20:09
回答 2查看 9.2K关注 0票数 16

一个有希望的直截了当的问题:当为给定的URI调用ContentResolver.notifyChange()时,是否会通知ContentObserver观察此URI的后代URI?

例如,假设我设置了一个光标来观察特定资源的URI:

代码语言:javascript
复制
 Uri uriA = Uri.parse("content://" + AUTHORITY + "/orders/21");
 cursor.setNotificationUri(getContext().getContentResolver(), uriA);

然后,我通知ContentResolver这个URI的祖先发生了变化(例如,因为我已经删除了所有订单):

代码语言:javascript
复制
 Uri uriB = Uri.parse("content://" + AUTHORITY + "/orders");
 getContext().getContentResolver().notifyChange(uriB, null);

我的已注册观察uriACursor会收到通知吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2011-07-22 04:38:45

在测试之后,简单的回答是:是的。

票数 12
EN

Stack Overflow用户

发布于 2014-01-29 05:28:27

这取决于它是如何注册的。如果在notifyForDescendents参数设置为true的情况下注册ContentObserver,则为yes。否则就不会。

注册是通过ContentResolver#registerContentObserver方法完成的:

代码语言:javascript
复制
void registerContentObserver (Uri uri, boolean notifyForDescendents, ContentObserver observer)
票数 30
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6678046

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档