Salvar pacote em SharedPreferences [duplicado]

Esta questão já tem uma resposta aqui:

Salvando um pacote inteiro em SharedPreferences 2 respostas

Fiz um grande esforço para transformar todos os dados do meu jogo Android em um pacote savedInstanceState. Há muitos dados juntos, incluindo muitos objetos Parceláveis. Isso garante que, quando o aplicativo for pausado ou a orientação seja alterada, nenhum dado seja perdido pela Atividade sendo recriada.

No entanto, descobri recentemente que um pacote savedInstanceState aparentemente NÃO é apropriado para armazenamento de longo prazo. Então, estou procurando uma maneira de adaptar meu método de salvamento existente para funcionar como uma solução de longo prazo, para que o estado do jogo sempre possa ser restaurado.

Eu já ouvi falar de duas soluções:

1) Use o pacote savedInstanceState para alterações de orientação, mas também incorpore SharedPrefs para quando o aplicativo precisar ser encerrado completamente.

Isso parece incrivelmente contraproducente, já que usa dois métodos completamente diferentes para fazer basicamente a mesma coisa. Além disso, como meu pacote savedInstanceState usa objetos Parcelable, eu teria que dar a cada um desses objetos outro método para permitir que eles sejam gravados em SharedPrefs. Essencialmente, muito código duplicado e de difícil gerenciamento.

2) Serialize o pacote savedInstanceState e grave-o diretamente em um arquivo.

Estou aberto a isso, mas na verdade não sei como fazê-lo. No entanto, ainda estou me segurando na esperança de que possa haver uma solução melhor, já que ouvi dizer que a serialização no Android é "comicamente / inutilmente lenta".

Eu ficaria extremamente grato se alguém pudesse me fornecer uma solução para isso.

questionAnswers(3)

yourAnswerToTheQuestion