Я очень занялся тем, чтобы все данные для моей игры в Android вписывались в пакет savedInstanceState Bundle. Там много данных вообще, включая множество объектов Parcelable. Это гарантирует, что когда приложение приостановлено или изменится ориентация, никакие данные не будут потеряны при восстановлении Деятельности.
Тем не менее, я только недавно обнаружил, что пакет savedInstanceState, по-видимому, не подходит для долговременного хранения. Поэтому я ищу способ, которым я могу адаптировать существующий метод сохранения, чтобы работать как долгосрочное решение, так что состояние игры всегда можно восстановить.
До сих пор я слышал о двух решениях:
1) Используйте пакет savedInstanceState для изменения ориентации, но также включите SharedPrefs, когда приложение должно быть полностью отключено.
Это кажется невероятно контрпродуктивным, поскольку он использует 2 разных полностью метода, чтобы делать в основном одно и то же. Кроме того, поскольку my savedInstanceState Bundle использует объекты Parcelable, я должен был бы дать каждому из этих объектов другой метод, чтобы они могли быть записаны в SharedPrefs. Существенно LOTS дублированного и трудно управляемого кода.
2) Сериализовать пакет savedInstanceState Bundle и записать его непосредственно в файл.
Я открыт для этого, но на самом деле я не знаю, как это сделать. Тем не менее, я все еще держу надежду на то, что может быть лучшее решение, поскольку я слышал, что сериализация в Android "комично/необычно медленно".
Я был бы чрезвычайно благодарен, если бы кто-то мог предоставить мне решение этого.