android - query - getcontentresolver() insert
Cuando se llama a ContentResolver.notifyChange() para un URI determinado, ¿se notifican los ContentObservers que observan los URI descendientes de este URI? (2)
Depende de cómo se haya registrado. Si el ContentObserver
se registró con el argumento notifyForDescendents
establecido como verdadero, entonces sí. De otra manera no.
El registro se realiza a través del método ContentResolver#registerContentObserver
:
void registerContentObserver (Uri uri, boolean notifyForDescendents, ContentObserver observer)
Una pregunta esperanzadamente sencilla: cuando se llama a ContentResolver.notifyChange()
para un URI determinado, ¿se ContentObserver
los URIs descendientes observadores de este URI de ContentObserver
?
Ej. Supongamos que tengo una configuración de cursor para observar la URI de un recurso específico:
Uri uriA = Uri.parse("content://" + AUTHORITY + "/orders/21");
cursor.setNotificationUri(getContext().getContentResolver(), uriA);
Luego, ContentResolver
un cambio en un ancestro de este URI (por ejemplo, porque he eliminado todos los pedidos):
Uri uriB = Uri.parse("content://" + AUTHORITY + "/orders");
getContext().getContentResolver().notifyChange(uriB, null);
¿Sería notificado mi Cursor
, registrado para observar la uriA
?
Después de probarlo, respuesta simple: sí.