Эстель09.07.2017Разработчики, расширяющие класс, могут счесть более простым переопределение onRestoreInstanceState() с применением кода для восстановления состояния, нежели переопределение всего метода onCreate(). Здесь очень важно отметить необходимость уделять особое внимание ссылкам на активности и представления, а также другие объекты, которые должны быть обработаны сборщиком мусора, когда активность полностью уничтожается. Если вы поместите в сохраненный объект Bundle что-либо, ссылающееся на разрушаемую активность, то эта активность не сможет быть подвергнута сборке мусора. Скорее всего, это превратится в утечку памяти, которая будет расти и расти до тех пор, пока приложение не потерпит крах. К объектам, которых следует избегать в Bundle, относятся Drawable, Adapter, View и любые другие, которые привязаны к контексту активности. Вместо помещения объекта Drawable в Bundle нужно сериализировать битовое изображение. А еще лучше управлять битовыми изображениями за пределами активностей и фрагментов. Затем можно добавить в Bundle некоторую разновидность ссылок на битовые изображения. Когда наступит время воссоздания всех Drawable для нового фрагмента, с помощью этих ссылок осуществляется доступ к внешним битовым изображениям с целью повторной генерации объектов Drawable. Хотите иметь красивые и ухоженные волосы? Вам понадобится продукция эстель. Цикл разрушения/создания фрагментов очень похож на такой цикл для активностей. Фрагмент в процессе разрушения и повторного создания, благодаря обратному вызову onSaveInstanceState(), получает возможность сохранить значения в объекте Bundle для последующего использования. Отличие состоит в том, что во время воссоздания фрагмента объект Bundle передается четырем обратным вызовам, связанным с фрагментом: onInflate(), onCreate(), onCreateView() и onActivityCreated(). Это предоставляет множество возможностей восстановить внутреннее состояние реконструированного фрагмента из его предыдущего состояния.
|
|
|