Вопрос о сохранении и загрузке объектов в Android - PullRequest
2 голосов
/ 20 марта 2019

В последнее время я занимаюсь разработкой для Android.Я сделал много базовых уроков и сделал пару небольших приложений, но одну вещь, которую я не понимаю, это практика сохранения и загрузки объектов.Я понимаю разницу между внешним и внутренним хранилищем, общими настройками и базами данных;Я просто запутался при их реализации.

В одном из моих предыдущих проектов я использовал Gson для преобразования своего пользовательского объекта в json и сохранения его во внутреннем хранилище сразу после создания объекта.Затем каждый раз, когда пользователь открывал приложение, я извлекал все объекты (все они были одного класса) и помещал их в массив, чтобы мое приложение могло их использовать.Это просто не кажется мне правильным, и мне было интересно, если бы кто-то мог сказать мне, если это хорошая практика, или объяснить мне, почему это не так и каковы альтернативы.

В настоящее время я работаю над запискойпринимая приложение.У меня есть объект заметки, который имеет заголовок, тело и дату создания.Я думал сделать то же самое, что описано выше.Когда пользователь создает заметку, он преобразуется в json и сохраняет ее внутри.Если пользователь когда-либо закроет приложение и снова откроет его, оно загрузит json, преобразует их обратно в объекты и поместит их в массив, чтобы я мог отобразить их и позволить пользователю просматривать и редактировать их.

Это хорошая практика?Есть ли лучший способ справиться с этим?

Спасибо!

Ответы [ 2 ]

2 голосов
/ 20 марта 2019

Вы должны сохранить свои данные в базе данных SQLite на устройстве вместо JSON.Изучите Библиотеку комнат сохраняемости для более плавного сохранения ваших объектов в SQLite.

Документация библиотеки комнат сохраняемости

Видео для разработчиков Google Android на Youtube.

Вы можете следовать приведенным примерам, образцу и Google Codelab , чтобы быстро его изучить.Это довольно просто.

Или, вы можете пойти не очень рекомендуемый способ использования SQLite напрямую - Читайте здесь .

1 голос
/ 20 марта 2019

Это не нужно, почему бы просто не использовать базу данных SQLite.Почему вы хотите сохранить их как JSON?

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