Я приложил немало усилий, чтобы все данные для моей игры для Android поместились в пакет saveInstanceState Bundle. Всего данных много, включая множество объектов Parcelable. Это гарантирует, что при приостановке приложения или изменении ориентации никакие данные не будут потеряны при воссоздании действия.
Однако я только недавно обнаружил, что пакет saveInstanceState, по-видимому, НЕ подходит для долгосрочного хранения. Поэтому я ищу способ адаптировать существующий метод сохранения для работы в качестве долгосрочного решения, чтобы всегда можно было восстановить состояние игры.
Я слышал о 2 решениях до сих пор:
1) Используйте пакет saveInstanceState для изменения ориентации, а также включите SharedPrefs, когда приложение необходимо полностью закрыть.
Это кажется невероятно контрпродуктивным, поскольку использует 2 совершенно разных метода, чтобы делать одно и то же. Кроме того, поскольку мой пакет saveInstanceState Bundle использует объекты Parcelable, мне пришлось бы предоставить каждому из этих объектов другой метод, позволяющий записывать их в SharedPrefs. По сути, МНОГО дублированного и сложно управляемого кода.
2) Сериализировать пакет saveInstanceState Bundle и записать его непосредственно в файл.
Я открыт для этого, но на самом деле я не знаю, как это сделать. Тем не менее, я все еще надеюсь, что может быть лучшее решение, поскольку я слышал, что сериализация в Android «комично/непригодно медленная».
Я был бы очень признателен, если бы кто-то мог предоставить мне решение этой проблемы.