Где хранить данные приложения?

Я создаю относительно простое приложение / игру, которая состоит из задач и подзадач. Прогресс пользователя должен быть сохранен. У пользователя также есть небольшое количество настроек.

На данный момент приложение не подключается к внешним службам, но в будущем цель состоит в том, чтобы использовать Facebook или что-то подобное для регистрации пользователей и добавить функцию, чтобы делиться успехами / достижениями с другими пользователями.

Я новичок в разработке приложений и не знаю, какой метод хранения данных выбрать. Если я не ошибаюсь, есть наборы ключ-значение, сохраняемые в файле и в базе данных.

Чтобы сделать все быстро и, возможно, даже выпустить v. 1.0, я бы хотел использовать самое простое решение. Итак, я хотел бы знать, есть ли недостаток в выборе значения ключа или сохранения в файле и насколько сложно переключиться на сохранение в базе данных? Или я должен просто использовать базу данных с самого начала?

Я приветствую Вас, что нашли время ответить на это!

-Timo

2 ответа

Решение

Я рекомендую для вас SharedPreferences. Это простой класс Android, который хранит ваши данные в наборах Key-Value.

Вот код:

SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(getApplicationContext());

Это инициализирует ваши SharedPreferences. Если вы хотите написать / изменить значение, сделайте это:

SharedPreferences.Editor editor = sharedPref.edit();
editor.putInt("KEY_TO_VALUE", 123);
editor.commit();

Вы также можете поместить туда другие типы значений, но вам нужно вызвать putString или же putBoolean или даже другие типы.

Чтобы прочитать значение, сделайте это:

int a = prefs.getInt("KEY_TO_VALUE", 0);

Этот код должен, как всегда, ваш параметр ваш ключ, а второй параметр значение по умолчанию.

Еще один совет для вас, что если вы хотите использовать это в обычном приложении с простым пользовательским интерфейсом, есть нечто, называемое PreferenceScreen.

Самый простой способ - использовать SharedPreferences. Для более сложных вещей вам нужно использовать SQLite(встроенный) или некоторые ORM, такие как Realm или GreenDao. Для обмена онлайн-счетами вам необходимо использовать один из вышеперечисленных и сервер. Facebook позволяет хранить только одно целое число для каждого пользователя, которого иногда недостаточно, а также для хранения этого целого числа вам необходимо запросить дополнительное разрешение у пользователя (publish_actions). Надеюсь, это поможет.

Другие вопросы по тегам