Я много читал о стратегиях автономного кеширования, но, к сожалению, не нашел ничего, что могло бы удовлетворить мои требования.
Допустим, у меня есть список заказов в моей локальной базе данных, которые необходимо синхронизировать с сервером, если один из них будет изменен. Заказ может иметь несколько статусов, например: Новый, Начатый, Приостановленный и Завершенный. Изменения статуса должны синхронизироваться с сервером последовательно, потому что порядок также важен.
Создание таблицы со столбцом «isModified» не подходит для меня, потому что мне нужно синхронизировать каждое изменение статуса последовательно, а не только последнее.
Каковы наилучшие стратегии сохранения всех изменений статуса, когда устройство отключено? Я думаю о дублировании таблицы заказов или создании новой для данных синхронизации, потому что могут быть и другие объекты, а не только заказы.
Любые советы будут высоко ценится.
Используйте базу данных Firebase для автономной базы данных. Он автоматически синхронизируется при активном подключении к Интернету.
Добавьте строку ниже в свой класс Application:
FirebaseDatabase.getInstance().setPersistenceEnabled(true);
привет @Blehi, ты наконец понял какую-нибудь стратегию? Мне нужно что-то вроде того, что вы просили!
Я использовал другую локальную таблицу, предложенную @ F43nd1r в принятом ответе. Каждая строка в таблице содержит одно событие для синхронизации. Для меня также важен порядок событий, и я синхронизирую каждую строку одну за другой, упорядоченную по идентификатору. Также обратите внимание, что я сохраняю каждое событие как строку JSON (чтобы быть готовым к синхронизации), но, возможно, вам это не нужно.
Если порядок модификаций имеет значение, вы должны хранить каждое изменение в какой-то упорядоченной структуре данных, например другой местный стол.
Спасибо, но, к сожалению, я не могу использовать сервисы Google Play в своем приложении, и у меня уже есть база данных Room, которую я хочу использовать.