一个有希望直截了当的问题:当为给定的URI调用ContentResolver.notifyChange()
时,是否ContentObserver
观察到此URI的后代 URI?
E.g。假设我有一个游标设置来观察特定资源的URI:
Uri uriA = Uri.parse("content://" + AUTHORITY + "/orders/21");
cursor.setNotificationUri(getContext().getContentResolver(), uriA);
然后我通知ContentResolver
此URI的祖先更改(例如,因为我删除了所有订单):
Uri uriB = Uri.parse("content://" + AUTHORITY + "/orders");
getContext().getContentResolver().notifyChange(uriB, null);
我的Cursor
注册观察uriA
会被通知吗?
答案 0 :(得分:30)
这取决于它的注册方式。如果ContentObserver
已注册,notifyForDescendents
参数设置为true,则为yes。否则没有。
通过该方法完成注册
ContentResolver#registerContentObserver
:
void registerContentObserver (Uri uri, boolean notifyForDescendents, ContentObserver observer)
答案 1 :(得分:12)
经过测试,简单回答:是的。