Fragmentos do Android retendo dados

Como é melhor reter os dados dentro de um fragmento à medida que sua atividade passa por um ciclo onCreate / Destroy como da rotação?

Em nossa configuração, temos listas potencialmente grandes carregadas de nossos servidores no adaptador de lista personalizada de fragmentos e queremos suavizar o UX não fazendo com que sejam recarregadas na rotação. O problema que tivemos ao configurar o fragmento retainInstance = true; é que nosso adaptador tem uma referência ao contexto da atividade original e, portanto, vazaria memória. Poderíamos apenas armazenar os dados no fragmento e recriar o adaptador; e se assim for, essa prática realmente adequada?

A próxima ideia é armazenar os dados em um objeto singleton de sessão e recuperá-los após a rotação, o que apresenta alguns problemas com dados obsoletos, mas podemos facilmente superá-los.

A outra alternativa que vejo, que parece ser a melhor solução, é salvar os dados em um pacote e restaurar no novo fragmento após a rotação; No entanto, temos alguns objetos que precisam ser armazenados em todo o aplicativo, e alguns de nossos objetos são complexos, contêm listas, vários tipos e seriam difíceis de serem parcelados. Existe uma solução melhor ou nós temos que morder a bala e torná-los parceláveis?

questionAnswers(3)

yourAnswerToTheQuestion