Salvar pacote em SharedPreferences [duplicado]
Esta questão já tem uma resposta aqui:
Salvando um pacote inteiro em SharedPreferences 2 respostasFiz 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.