Android CursorLoader не отвечает на уведомления ContentProvider

Я обновляю приложение Android 2.2, чтобы использовать CursorLoader (используя библиотеку совместимости v4), и я рву волосы, пытаясь понять, почему метод onLoadFinished не вызывается, когда поставщик содержимого уведомляет об изменении содержимого, связанного с запросом CursorLoader.

CursorLoader запрашивает поставщика контента клиента. Мой провайдер устанавливает URI уведомления в своем методе запроса:

cursor.setNotificationUri(getContext().getContentResolver(), uri);

и уведомляет об изменениях в своих методах вставки / обновления / удаления:

getContext().getContentResolver().notifyChange(uri, null);

Я проверил, что URI идентичен в обоих случаях. Раньше я использовал ManagedQuery с тем же поставщиком контента, и запрошенный контент обновлялся нормально, что заставляет меня думать, что с поставщиком контента все в порядке.

Я просмотрел пример LoaderCursorSupport , и, что интересно, когда я запускаю его на своем Nexus One, я не вижу, чтобы он отражал изменения, которые я вносил в имена контактов (переключение между примером приложения и приложение контактов). Должен ли он? Если да, то есть ли какая-то основная проблема, о которой я не знаю?

5
задан siwatson 18 January 2012 в 23:41
поделиться