@Sash0k_k

Как в Android можно использовать LoaderManager для ослеживания изменений представления (view) sqlite?

Добрый вечер.
Занимаюсь разработкой под Андроид, столкнулся с проблемой.

Проект использует sqlite: рабочие таблицы, таблицы-справочники и представление (view) для отображения готовых данных.

Задача: необходимо обновлять данные в таблице, и динамически отслеживать/отображать изменения в связанном представлении (view). Использую для этого LoaderManager по примеру из статьи. На чистой таблице всё работает отлично. Но если инициализировать в лоадере вьюху вместо таблицы - лоадер не отслеживает изменения в данных (onLoadFinished не вызывается).
Таблица:
CREATE TABLE [table_scan] (
   [_id] INTEGER PRIMARY KEY AUTOINCREMENT,
   [NR_ID] INTEGER NOT NULL,
   [T_ID] INTEGER NOT NULL,
   [Color_ID] INTEGER NOT NULL,
   [R_ID] INTEGER NOT NULL,
   [Barcode] TEXT NOT NULL,
   [NumberSeat] INTEGER,
   [Date] DATETIME NOT NULL DEFAULT(DATETIME('now', 'localtime')),
   [Deleted] INTEGER NOT NULL DEFAULT '0',
   [Status] INTEGER NOT NULL DEFAULT '0',
   [Export] INTEGER NOT NULL DEFAULT '0');

Вьюха:
CREATE VIEW [view_scan] AS SELECT _id, Barcode, Status, Deleted, NumberSeat,
 goods_catalog.T_Articul, colors_catalog.Color_Name, sizes_catalog.R_Name
 FROM table_scan
   INNER JOIN goods_catalog ON goods_catalog.T_ID = table_scan.T_ID
   INNER JOIN colors_catalog ON colors_catalog.Color_ID = table_scan.Color_ID
   INNER JOIN sizes_catalog ON sizes_catalog.R_ID = table_scan.R_ID
 WHERE Deleted = 0;


Как можно решить данную проблему?
ЗЫ: обновлять view, как написано в документации sqlite, нельзя
  • Вопрос задан
  • 3163 просмотра
Решения вопроса 1
@Sash0k_k Автор вопроса
Решение нашёл сам. Описал его в статье habrahabr.ru/post/205620
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы