Size: a a a

Android Developer

2020 March 14

D

Denis G. in Android Developer
Или это грозит чем-то ещё, в программно-организационном плане?
источник

ИМ

Иван Макеев in Android Developer
В вашем случае, вы фрагменты не добавляете в бекстек, я думаю что он просто будет каждый раз пересоздаваться и будет только в одно экземпляре. Но этот вариант лучше протестить. А если будет добавление в бекстек, то при каждом перевороте экрана, в случае если нет условия, новый фрагмент будет добавляться в бекстек. И да, это чревато тратой доп памяти. И в случае нажатия на кнопку бек, вы будете переходить на фрагмент добавленный ранее.
источник

D

Denis G. in Android Developer
Иван Макеев
В вашем случае, вы фрагменты не добавляете в бекстек, я думаю что он просто будет каждый раз пересоздаваться и будет только в одно экземпляре. Но этот вариант лучше протестить. А если будет добавление в бекстек, то при каждом перевороте экрана, в случае если нет условия, новый фрагмент будет добавляться в бекстек. И да, это чревато тратой доп памяти. И в случае нажатия на кнопку бек, вы будете переходить на фрагмент добавленный ранее.
Теперь всё понятно. Огромное спасибо!
источник
2020 March 15

Y

Yushka in Android Developer
Denis G.
То есть память будут занимать два и более фрагментов (в зависимости от количества переворачиваний экрана)? Будет только загрузка памяти?
Смена языка на девайсе тоже является сменой конфигурации. Не только поворот экрана. Может ещё какие настройки глобальные, не помню
источник

D

Denis G. in Android Developer
Yushka
Смена языка на девайсе тоже является сменой конфигурации. Не только поворот экрана. Может ещё какие настройки глобальные, не помню
Ооо, даже не задумывался, т.к. только начинаю. Спасибо.
источник

Y

Yushka in Android Developer
Denis G.
Ооо, даже не задумывался, т.к. только начинаю. Спасибо.
А ещё при смене конфигурации перезапускается активити. То есть, фрагмент тоже будет удалён и создан заново (если он не retain, но у этого все вьюхи всё равно так же переотрисуются), поэтому ни в каких бэкстеках он не останется. Ретэйн просто переприкрепится объект к новой активити. Сэйвдинстансстейт позволяет вытянуть из бандла состояние вьюх, которое было до переотрисовки
источник

ИМ

Иван Макеев in Android Developer
Yushka
А ещё при смене конфигурации перезапускается активити. То есть, фрагмент тоже будет удалён и создан заново (если он не retain, но у этого все вьюхи всё равно так же переотрисуются), поэтому ни в каких бэкстеках он не останется. Ретэйн просто переприкрепится объект к новой активити. Сэйвдинстансстейт позволяет вытянуть из бандла состояние вьюх, которое было до переотрисовки
Ну как это не остаётся? Если фрагмент загнать в бекстек и после этого сменить конфигурацию, он так же будет находиться в бекстеке активити. Другой разговор, что это будет уже новый объект фрагмента.
источник

ИМ

Иван Макеев in Android Developer
И активити не перезапускается, а пересоздается.
источник

Y

Yushka in Android Developer
Иван Макеев
И активити не перезапускается, а пересоздается.
Да, я не то слово использовала. Я имела в виду, что объект удаляется и создаётся новый
источник

Y

Yushka in Android Developer
Иван Макеев
Ну как это не остаётся? Если фрагмент загнать в бекстек и после этого сменить конфигурацию, он так же будет находиться в бекстеке активити. Другой разговор, что это будет уже новый объект фрагмента.
Я об объектах и говорю.
источник

ИМ

Иван Макеев in Android Developer
Yushka
Да, я не то слово использовала. Я имела в виду, что объект удаляется и создаётся новый
Ага, у меня просто в голове при этом слове сразу onRestart всплывает.
источник

ИМ

Иван Макеев in Android Developer
Yushka
Я об объектах и говорю.
Ну так в стек они добавляются при создании новой активити. Именно по этой причине и нельзя делать приватный конструктор у фрагмента.
источник

Y

Yushka in Android Developer
Иван Макеев
Ну как это не остаётся? Если фрагмент загнать в бекстек и после этого сменить конфигурацию, он так же будет находиться в бекстеке активити. Другой разговор, что это будет уже новый объект фрагмента.
Бэкстек фрагментов у активити восстанавливается? Или создаётся новый тоже. Я почему-то думаю, что первый вариант, но точно не знаю
источник

Y

Yushka in Android Developer
Иван Макеев
Ну так в стек они добавляются при создании новой активити. Именно по этой причине и нельзя делать приватный конструктор у фрагмента.
Вот да. Новый стек у новой активити.
источник

Y

Yushka in Android Developer
В общем, всё ещё не пойму, почему там что-то может потечь. Вот)
источник

ИМ

Иван Макеев in Android Developer
Yushka
В общем, всё ещё не пойму, почему там что-то может потечь. Вот)
А если есть сильные ссылки на фрагмент из вне , например?
источник

ИМ

Иван Макеев in Android Developer
Или я вопрос неправильно понял?
источник

Y

Yushka in Android Developer
Иван Макеев
А если есть сильные ссылки на фрагмент из вне , например?
Я про пример кода, который выше. Про ссылки на вьюхи вне я чот как-то вообще даже думать не собираюсь😄
источник

ИМ

Иван Макеев in Android Developer
Про пример с if в onCreate?
источник

Y

Yushka in Android Developer
Да, про него. Перечитала и осмыслила.
источник