一个可能非常简单的问题:当给定URI调用ContentResolver.notifyChange()
时,是否通知ContentObserver
观察此URI的后代URI?
例如。假设我有一个游标设置来观察特定资源的URI:
Uri uriA = Uri.parse("content://" + AUTHORITY + "/orders/21");
cursor.setNotificationUri(getContext().getContentResolver(), uriA);
然后,我将此URI的祖先更改通知给
ContentResolver
(例如,因为我已删除所有订单): Uri uriB = Uri.parse("content://" + AUTHORITY + "/orders");
getContext().getContentResolver().notifyChange(uriB, null);
我的注册了
Cursor
的uriA
会收到通知吗? 最佳答案
这取决于如何注册。如果在ContentObserver
参数设置为true的情况下注册了notifyForDescendents
,则可以。否则没有。
通过该方法完成注册
ContentResolver#registerContentObserver
:
void registerContentObserver (Uri uri, boolean notifyForDescendents, ContentObserver observer)