Android Проблема хранения данных sqlite библиотеки подкачки - PullRequest
1 голос
/ 12 июля 2020

За последние дни я освоился с Android Компонентами архитектуры , и меня больше всего интересовала Библиотека подкачки для обработки и отображения списков данных из удаленный источник. Для наилучшего UX лучше сначала загрузить данные в базу данных, в данном случае Room , а затем отобразить их в recyclerview, используя pagingLibrary и адаптеры. Меня беспокоит это, допустим, у api есть тысячи записей или даже канал Twitter, и все эти данные должны проходить через db, а затем в пользовательский интерфейс, как обрабатывать это хранилище на устройстве? Видеть, как хранить все данные на устройстве - плохая идея. Есть ли способ удалить «устаревшие» данные или как это сделать рекомендуется?

Изменить: команда android работала над V3 для библиотеки подкачки, вот ссылка на статью, может пролить больше света статья здесь

1 Ответ

2 голосов
/ 12 июля 2020

RemoteMediator имеет initialize API, выполнение которого гарантировано до начала загрузки. Вы можете переопределить initialize, чтобы проверить устаревшие данные, чтобы выполнить любую необходимую настройку (например, удалить старые записи), хотя я лично был бы немного удивлен, если бы только 1000 строк вызывали значительные проблемы с производительностью.

Для путей горячего кода, таких как эти PagingSource запросы, вы можете посмотреть androidx.benchmark, чтобы выяснить, стоит ли оптимизировать для.

Изменить: вы можете просто очистить таблицу при успешном удаленном обновлении sh, если вы не хотите оставлять старые твиты на refre sh, это самый простой подход. initialize предназначен для случая, когда вам нужно выполнить ручную очистку / настройку / проверки устаревания (например, вы можете проверить, сколько лет вашим данным, и решить, хотите ли вы обновить sh или нет), но просто очистить удаленно refre sh перед вставкой новой страницы работает хорошо, потому что вам все равно придется перезапустить разбиение на страницы. Обязательно выполните команду clear + insert в той же транзакции, чтобы не получить два аннулирования из-за обновлений базы данных!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...