Фрагменты Android, сохраняющие данные

Как лучше всего сохранить данные внутри фрагмента, когда его активность проходит через цикл onCreate/Destroy, например, при вращении?

В нашей настройке у нас есть потенциально большие списки, загруженные с наших серверов в адаптер пользовательского списка фрагментов, и мы хотим сгладить UX, не заставляя их перезагружаться при ротации. Проблема, с которой мы столкнулись при установке фрагмента continueInstance=true; заключается в том, что наш адаптер имеет ссылку на контекст исходной активности и, следовательно, может привести к утечке памяти. Можем ли мы просто сохранить данные во фрагменте и повторно -создать адаптер; и если да, то это действительно правильная практика?

Следующая идея состоит в том, чтобы хранить данные в одноэлементном объекте сеанса и извлекать их после ротации, что создает несколько проблем с устаревшими данными, но мы можем легко их решить.

Другая альтернатива, которую я вижу, кажется *лучшим решением, состоит в том, чтобы сохранить данные в пакет и восстановить в новый фрагмент после поворота; Однако у нас есть довольно много объектов, которые необходимо хранить в приложении, и некоторые из наших объектов сложны, содержат списки, несколько типов, и их было бы сложно разделить на части. Есть ли лучшее решение или мы должны стиснуть зубы и сделать их Parcelable?

5
задан Zachary Moshansky 7 August 2012 в 20:13
поделиться