Когда вызывается ContentResolver.notifyChange() для заданного URI, являются ContentObservers, наблюдающие последующие URI этого URI, уведомленные?

Мы надеемся, что простой вопрос: когда 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, быть уведомленным?

Ответы

Ответ 1

После тестирования, простой ответ: да.

Ответ 2

Это зависит от того, как он был зарегистрирован. Если ContentObserver был зарегистрирован с аргументом notifyForDescendents, установленным как true, тогда да. В противном случае нет.

Регистрация осуществляется с помощью метода ContentResolver#registerContentObserver:

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