Как лучше всего хранить ~ 400 пар ключ-значение для приложения Android? Эти значения будут установлены при первоначальной настройке приложения и впоследствии будут меняться крайне редко. Однако они используются один раз для каждого приложения в качестве шаблона для создания набора других объектов, которыми затем манипулируют.
В предыдущей версии приложения я сохранил эти значения в отдельной таблице sql. Сейчас я перехожу к использованию модели комнаты и переделываю большую часть кода, часть которого оценивает предыдущие решения.
Как работал предыдущий код, я импортировал пару ID и логического значения в список объектов. Затем пользователь добавлял дополнительную информацию к этим объектам, а затем я повторно сохранял данные этих объектов обратно в отдельную, но связанную таблицу sql.
Должен ли я сохранить значения в таблице? Было бы слишком много или неэффективно использовать SharedPreferences? Есть ли лучший способ, о котором я не знаю?
Вот формат двух таблиц. Первая отслеживает, какие тележки находятся в ротации в данный момент, тогда как вторая таблица представляет собой ежедневную историю каждой тележки.
(cartID int NOT NULL PRIMARY KEY,
in_rotation boolean NOT NULL) ");
database.execSQL("create table " + cartlistTable + "
(checksheetID string NOT NULL,
cartID int NOT NULL,
in_rotation boolean NOT NULL,
checked boolean default 0,
overdue boolean default 0,
maintenance boolean default 0,
FOREIGN KEY(checksheetID) REFERENCES checksheet(checksheetID),
FOREIGN KEY(cartID) REFERENCES carts(cartID))");
@dariushf Хорошо, но с учетом того, что SharedPrefs сохраняются в памяти во время работы приложения, какие рекомендации / ограничения мне следует учитывать? Есть ли точка, в которой хранение данных другим методом более эффективно, чем использование памяти в основном для одноразовой транзакции? Я понимаю, что SharedPrefs было бы простым решением, если бы данные изменялись нечасто (и скорость без ввода-вывода была бы полезной), но я просто использую его для заполнения списка один раз, а затем продолжаю работу с приложением.
sharedPrefs находится не в памяти, а в каталоге хранилища приложений.
SharedPreferences — это хороший способ для приложения хранить примитивные данные в парах ключ-значение. С ним также довольно просто работать.
Я бы посоветовал вам держаться подальше от общих настроек, если вы работаете с большим объемом данных, потому что максимальный объем данных, который может храниться в общих настройках, составляет 1428,51 КБ.
Кроме того, общие настройки хранятся в XML-файле, и им не хватает мощной поддержки транзакций от SQlite или Room. Общие настройки загружают все данные и считывают содержимое всего XML-файла в память.
Сравнивая комнату и общие настройки, для информации, например, 400 элементов, вы можете выбрать комнату.
SharedPrefs — лучшее место для хранения пар ключ-значение. и нет ограничений по размеру...