Guardar lote en SharedPreferences [duplicar]

Esta pregunta ya tiene una respuesta aquí:

Guardar un paquete completo en SharedPreferences 2 respuestas

He hecho todo lo posible para que todos los datos de mi juego de Android encajen en un paquete de estado de emergencia guardado. Hay una gran cantidad de datos en total, incluidos muchos objetos parcelables. Esto garantiza que cuando la aplicación se detiene o cambia la orientación, la actividad que se está recreando no pierde ningún dato.

Sin embargo, recientemente descubrí que un paquete savedInstanceState aparentemente NO es apropiado para el almacenamiento a largo plazo. Así que estoy buscando una manera de adaptar mi método de guardado existente para que funcione como una solución a largo plazo, para que el estado del juego siempre pueda restaurarse.

He oído hablar de 2 soluciones hasta ahora:

1) Utilice el paquete savedInstanceState para los cambios de orientación, pero también incorpore SharedPrefs para cuando la aplicación deba cerrarse por completo.

Esto parece increíblemente contraproducente, ya que utiliza 2 métodos completamente diferentes para hacer básicamente lo mismo. Además, dado que mi paquete SavedInstanceState utiliza objetos parcelables, tendría que dar a cada uno de esos objetos otro método para permitir que se escriban en SharedPrefs. Esencialmente un montón de código duplicado y difícil de administrar.

2) Serializar el paquete savedInstanceState y escribirlo directamente en un archivo.

Estoy abierto a esto, pero en realidad no sé cómo hacerlo. Sin embargo, sigo teniendo la esperanza de que pueda haber una mejor solución, ya que he escuchado que la serialización en Android es "cómicamente / no es muy lenta".

Estaría extremadamente agradecido si alguien pudiera brindarme una solución para esto.

Respuestas a la pregunta(3)

Su respuesta a la pregunta