В моем приложении есть функция, которая возвращает курсор. Курсор может потенциально вернуть много строк данных и всегда возвращает 5 столбцов данных из двух соединенных таблиц. Столбцы 1-4 никогда не меняются. Столбец 5 может меняться в зависимости от действий пользователя. Как мне зарегистрировать обозреватель контента, чтобы он уведомлял меня об изменении 5-го столбца при изменении строки? Вот пример. В своей основной деятельности я звоню
Cursor cursor = db.getNotifiedCursor();
Это дает мне мои 5 столбцов данных. Затем я беру эти 5 столбцов данных и использую адаптер курсора, чтобы поместить каждую строку в качестве элемента списка в ListView.
Если пользователь не щелкнул элемент списка, фон для этого элемента имеет один цвет. После того, как они нажимают на элемент списка, это другой цвет. Это просто для того, чтобы помочь им различать предметы, которые они уже просмотрели и не просмотрели.
5-й столбец может быть нулевым, нулевым (0) или единичным (1). Если это ноль, то это не в моем ListView. Если это ноль, то это в моем списке с первым цветом фона. Если это 1, то это в моем списке со вторым цветом фона.
Мой оригинальный способ решения этой проблемы заключался в использовании обработчика, который бесконечно зацикливается каждые 750 миллисекунд и перезагружает данные из представления списка с правильными цветами. Я бы предпочел вызывать этот обработчик только при изменении данных, потому что версия цикла кажется немного хакерской.