Когда ContentResolver.notifyChange () вызывается для заданного URI, уведомляются ли ContentObservers о потомках URI этого URI? - PullRequest
16 голосов
/ 13 июля 2011

Надеюсь, простой вопрос: когда ContentResolver.notifyChange() вызывается для данного URI, наблюдает ли *1003* потомок 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, уведомлен?

Ответы [ 2 ]

30 голосов
/ 29 января 2014

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

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

void registerContentObserver (Uri uri, boolean notifyForDescendents, ContentObserver observer)
12 голосов
/ 22 июля 2011

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

...