一个可能非常简单的问题:当给定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);

我的注册了CursoruriA会收到通知吗?

最佳答案

这取决于如何注册。如果在ContentObserver参数设置为true的情况下注册了notifyForDescendents,则可以。否则没有。

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

void registerContentObserver (Uri uri, boolean notifyForDescendents, ContentObserver observer)

09-04 19:26