Я думаю, что нам нужно в первую очередь понять, что существует несколько возможностей для сохранения данных в вашем приложении (с возможностью повторного ввода приложения и восстановление данных):
1) Сохранить на диске (это быстро, но вы может стереть эти данные, например, при переустановке приложения) 2) Сохранить на удаленном диске (он медленный, но это позволит вам продолжить работу по удалению и переустановке приложения).
Так что прежде всего вам нужно выбрать одну из этих возможностей. Я думаю, в вашем случае это будет достаточно, чтобы сохранить изменения на локальном диске (помимо стоимости удаленного хранения некоторые дополнительные $$)
В первой же возможности есть несколько вариантов для реализации его: - через общие предпочтения - через сохранение в файл (внутреннее хранилище) - через сохранение в файле (внешнее хранилище) - путем хранения данных в базе данных
Я думаю, что последний вариант не для вас, так как вы хотите просто сохранить состояние игры. И вариант «внешнего хранилища» также не для вас, потому что игровое состояние - это личные данные вашего приложения.
Таким образом, вам необходимо выбрать между общими предпочтениями и внутренним хранением. В этой дилемме вы можете думать о том, что вам больше нравится. Для меня общие настройки обеспечивают удобный и асинхронный способ сохранения данных, что более предпочтительно в игре. Но вам нужно подумать о том, сколько данных вы хотите сохранить.
Если он невелик, выберите «Общие настройки». И если вы делаете свой способ сохранить в SharedPreferences (напишите меньше кода и сделайте его более читаемым), вы можете импортировать библиотеку Gson или Jackson. Затем выберите специальный класс GameState для своей игры и просто преобразуйте его в строку json и сохраните. То же самое для восстановления. Выберите строку из prefs и проанализируйте ее в GameState. Это все.
Надеюсь, это поможет. :)
https://developer.android.com/training/basics/data-storage/databases.html – johnrao07