Ответ 1
После тестирования, простой ответ: да.
Мы надеемся, что простой вопрос: когда 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)