android year When ContentResolver.notifyChange() is called for a given URI, are ContentObservers observing descendent URIs of this URI notified?




why can t 16 year olds vote (2)

A hopefully straightforward question: When ContentResolver.notifyChange() is called for a given URI, are ContentObservers observing descendent URIs of this URI notified?

E.g. Say I have a cursor setup to observer the URI of a specific resource:

 Uri uriA = Uri.parse("content://" + AUTHORITY + "/orders/21");
 cursor.setNotificationUri(getContext().getContentResolver(), uriA);

I then notify the ContentResolver of a change to an ancestor of this URI (e.g. because I have deleted all orders):

 Uri uriB = Uri.parse("content://" + AUTHORITY + "/orders");
 getContext().getContentResolver().notifyChange(uriB, null);

Would my Cursor, registered to observe uriA, be notified?


It depends on how it was registered. If the ContentObserver was registered with the notifyForDescendents argument set as true, then yes. Otherwise no.

The registration is done through the method ContentResolver#registerContentObserver:

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

After testing it, simple answer: yes.