Где хранить данные приложения?
Я создаю относительно простое приложение / игру, которая состоит из задач и подзадач. Прогресс пользователя должен быть сохранен. У пользователя также есть небольшое количество настроек.
На данный момент приложение не подключается к внешним службам, но в будущем цель состоит в том, чтобы использовать 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). Надеюсь, это поможет.