Size: a a a

Moxy – MVP библиотека под Android

2019 January 28

YS

Yuri Shmakov in Moxy – MVP библиотека под Android
ну и можно всегда ручками вызвать на mvpDelegate onDestroy, когда хочется избавиться от презентера
источник

MP

Mansur Panzerkampfwagen IV in Moxy – MVP библиотека под Android
Ок, примерно понял, спасибо)
Посмотрю что у меня получится
источник

TT

Turalllb Turalll in Moxy – MVP библиотека под Android
Mansur Panzerkampfwagen IV
Всем привет! Есть такая проблема, если кто-нибудь знает как её решить, буду очень благодарен!

В активити есть ViewPager с FragmentStatePagerAdapter, который возвращает одинаковые фрагменты. Таких фрагментов может быть больше ста.
Я заметил что при скролле к соседним элементам у Presenter-ов не вызывается onDestroy и они хранятся в памяти.
Как этого избежать, что сделать чтобы presenter-классы уничтожались согласно viewpager.offscreenPageLimit?
Когда переключаетесь к соседней вью, те что за пределами лимита в statePager , будут detach от презентер, но презентер не уничтожится, я думаю потому,  что их хост активити и пока она жива , локальный презентер будет жить.  Но дело в том,  что скорее всего вам вообще не нужен мокси, т.к. StatePager хранит в списке состояния каждого таба , когда вы вернесь на прошлый там по его позиции он из списка берет состояние и нанизывает на вью. Состояние он хранит с помощью класса SavedState , который реализует интерфейс Parcelable .  В общем за вас уже всё сделано, ваши презентеры могут снять с себя обязанность хранить состояние вью. И кстати если используете FragmentPagerAdapter , то он не состояния хранит, а в менеджереФрагментов целиком фрагменты по их тегам, которые он сам им же и задает.  Не знаю вообще какой смысл использовать этот адаптер если есть State
источник

TT

Turalllb Turalll in Moxy – MVP библиотека под Android
Yuri Shmakov
ну и можно всегда ручками вызвать на mvpDelegate onDestroy, когда хочется избавиться от презентера
Подскажите, а нужен ли мокси вообще,  если мы работаем с фрагментом ? Ведь фрагменты сами могут хранить состояние. Или нужен но только если надо воссоздать, например,  показ прогресс бара ?
источник

YS

Yuri Shmakov in Moxy – MVP библиотека под Android
если активити пересоздалась, то фрагмент пересоздаётся тоже
источник

YS

Yuri Shmakov in Moxy – MVP библиотека под Android
если фрагмент уничторжился, а потом показался обратно - то тоже всё потеряется. а дальше - смотрите сами =)
источник

MP

Mansur Panzerkampfwagen IV in Moxy – MVP библиотека под Android
Turalllb Turalll
Когда переключаетесь к соседней вью, те что за пределами лимита в statePager , будут detach от презентер, но презентер не уничтожится, я думаю потому,  что их хост активити и пока она жива , локальный презентер будет жить.  Но дело в том,  что скорее всего вам вообще не нужен мокси, т.к. StatePager хранит в списке состояния каждого таба , когда вы вернесь на прошлый там по его позиции он из списка берет состояние и нанизывает на вью. Состояние он хранит с помощью класса SavedState , который реализует интерфейс Parcelable .  В общем за вас уже всё сделано, ваши презентеры могут снять с себя обязанность хранить состояние вью. И кстати если используете FragmentPagerAdapter , то он не состояния хранит, а в менеджереФрагментов целиком фрагменты по их тегам, которые он сам им же и задает.  Не знаю вообще какой смысл использовать этот адаптер если есть State
Спасибо за подробный ответ!
У меня везде используются презентеры мокси и не хотелось бы из-за этого создавать отдельный класс, а продолжить использовать его, но при этом чтобы презентеры уничтожались при переходе за offscreen page limit
источник

TT

Turalllb Turalll in Moxy – MVP библиотека под Android
Yuri Shmakov
если активити пересоздалась, то фрагмент пересоздаётся тоже
Не понимаю я этого,  ведь на life cycle фрагментов показано,  что они могут отсоединяться от хоста и жить некоторое время пока новая активность не подхватит их
источник

TT

Turalllb Turalll in Moxy – MVP библиотека под Android
Mansur Panzerkampfwagen IV
Спасибо за подробный ответ!
У меня везде используются презентеры мокси и не хотелось бы из-за этого создавать отдельный класс, а продолжить использовать его, но при этом чтобы презентеры уничтожались при переходе за offscreen page limit
Тогда понятно
источник

TT

Turalllb Turalll in Moxy – MVP библиотека под Android
Turalllb Turalll
Не понимаю я этого,  ведь на life cycle фрагментов показано,  что они могут отсоединяться от хоста и жить некоторое время пока новая активность не подхватит их
Это касательно retain фрагментов
источник

YS

Yuri Shmakov in Moxy – MVP библиотека под Android
Turalllb Turalll
Это касательно retain фрагментов
их view всё равно уничтожается
источник
2019 January 29

TT

Turalllb Turalll in Moxy – MVP библиотека под Android
Не могли бы подкинуть проект еще используется глобальный презентер с репозиторием презентеров. Лучше один раз посмотреть в рабочем классе, чем на куски кода смотреть
источник

TT

Turalllb Turalll in Moxy – MVP библиотека под Android
Ммм, оказывается в sample с гитхаба есть то что нужно)
источник

MP

Mansur Panzerkampfwagen IV in Moxy – MVP библиотека под Android
Turalllb Turalll
Ммм, оказывается в sample с гитхаба есть то что нужно)
Можно ссылку?
источник

TT

Turalllb Turalll in Moxy – MVP библиотека под Android
Mansur Panzerkampfwagen IV
Можно ссылку?
источник

TT

Turalllb Turalll in Moxy – MVP библиотека под Android
Хотя это не совсем то. вот здесь есть https://github.com/Arello-Mobile/Moxy/wiki/Provides-Presenter-and-its-Tag   Но к сожалению код потыкать нельзя..
источник

MP

Mansur Panzerkampfwagen IV in Moxy – MVP библиотека под Android
спасибо
источник

TT

Turalllb Turalll in Moxy – MVP библиотека под Android
Глобальный презентер будет уничтожен только тогда, когда процесс будет убит. Значит пока мой аппликайшен жив, будут жить и глобальные презентеры? А как поступить, если я хочу чтобы мой презентер созданный в одной активности, жил еще при переходе на вторую активность, но после завершения работы во второй активности, я хочу чтобы презентеры удалились
источник

D

Donald in Moxy – MVP библиотека под Android
А что надо сделать?
источник

D

Donald in Moxy – MVP библиотека под Android
Вопрос про глобальный презентер это следствие размышлений по поводу решения какой-то проблемы, какой именно?
источник