一个有希望的简单问题:当ContentResolver.notifyChange()
为给定的URI被调用时,ContentObserver
观察到该URI的后代 URI是否被通知?
。假设我有一个光标设置来观察特定资源的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
,会被通知吗?
这取决于它的注册方式。如果注册ContentObserver
时,notifyForDescendents
参数设置为true,则是。否则没有。
注册是通过方法完成的ContentResolver#registerContentObserver
:
void registerContentObserver (Uri uri, boolean notifyForDescendents, ContentObserver observer)
经过测试,简单的回答:是的。