Size: a a a

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

2021 January 30

YS

Yuri Shmakov in Moxy – MVP библиотека под Android
Jorik Fat
Получается, так как presenter живет в static, умирает только в onDestroy() и в приложении скажем есть 20-30 последовательно открытых activity (разумеется часть из них будет очищена) - Presenter'ы всех будут жить?
Да, всё именно так
источник

МА

Михаил Алпеев... in Moxy – MVP библиотека под Android
Алексей Ершов
В андроиде есть режим don’t keep activities. Это настройка для разработчиков, которая делает так, что как только вы уходите с одной активити на другую, предыдущая уничтожается. Этот режим нужен для тестирования ваших приложений, чтобы вы убедились, что состояние экранов, с которых вы уходите, корректно сохраняется. У реальных пользователей этот режим по умолчанию выключен.
…но есть некоторые вредные вендоры, которые его включают для экономии оперативной памяти и ещё чего-то, поэтому возможно вы хотите быть готовы к тому, чтобы встретить этот режим в продакшене. И Мокси презентер такой вариант уничтожения активити переживает.
Добрый день, правильно ли я понимаю, что приложение, построенное на MVVM, не переживёт don't keep activities, а presenter moxy переживёт?
источник

AD

Aleksey D. in Moxy – MVP библиотека под Android
Михаил Алпеев
Добрый день, правильно ли я понимаю, что приложение, построенное на MVVM, не переживёт don't keep activities, а presenter moxy переживёт?
да, особенности реализации каждой из библиотек
источник

HR

Habanero Red in Moxy – MVP библиотека под Android
Михаил Алпеев
Добрый день, правильно ли я понимаю, что приложение, построенное на MVVM, не переживёт don't keep activities, а presenter moxy переживёт?
Приложение любое переживет. Не переживет сам объект Activity. Поэтому, разработчик должен позаботиться о том, чтобы сохранить нужные данные вне Activity. В Moxy эта проблема решена тем, что инстанс презентера не убивается вместе с activity
источник

NM

Nikita Migunov in Moxy – MVP библиотека под Android
Добрый вечер! Я меня есть recyclerview. В процессе работы приложения я могу добавлять новые элементы. Как в MVP Moxy можно сохранить этот список при повороте экрана? Я понимаю, что список нужно сохранить в Presenter. А как это сделать?
источник

JF

Jorik Fat in Moxy – MVP библиотека под Android
Nikita Migunov
Добрый вечер! Я меня есть recyclerview. В процессе работы приложения я могу добавлять новые элементы. Как в MVP Moxy можно сохранить этот список при повороте экрана? Я понимаю, что список нужно сохранить в Presenter. А как это сделать?
При добавлении элементов передавать их в presenter. Presenter передает обновленные данные / новый элемент в activity. Activity передает их в adapter и обновляете адаптер
источник

Е

Евгений in Moxy – MVP библиотека под Android
Алексей Ершов
В андроиде есть режим don’t keep activities. Это настройка для разработчиков, которая делает так, что как только вы уходите с одной активити на другую, предыдущая уничтожается. Этот режим нужен для тестирования ваших приложений, чтобы вы убедились, что состояние экранов, с которых вы уходите, корректно сохраняется. У реальных пользователей этот режим по умолчанию выключен.
…но есть некоторые вредные вендоры, которые его включают для экономии оперативной памяти и ещё чего-то, поэтому возможно вы хотите быть готовы к тому, чтобы встретить этот режим в продакшене. И Мокси презентер такой вариант уничтожения активити переживает.
Добрый день. Как часто Вам такое попадалось? Очень интересно звучит. Имею у себя в приложении (без мокси) очень редкую ошибку, которая очень похожа на то, что активити пересоздается и теряет данные. Просто при создании она получает модельку с гарантированно заполненным полем name, а в процессе работы в одном из ее фрагментов, куда эта моделька пробрасывается в неизменном виде, в getName из нее ИНОГДА вылетает nullPointer.
источник

JF

Jorik Fat in Moxy – MVP библиотека под Android
Евгений
Добрый день. Как часто Вам такое попадалось? Очень интересно звучит. Имею у себя в приложении (без мокси) очень редкую ошибку, которая очень похожа на то, что активити пересоздается и теряет данные. Просто при создании она получает модельку с гарантированно заполненным полем name, а в процессе работы в одном из ее фрагментов, куда эта моделька пробрасывается в неизменном виде, в getName из нее ИНОГДА вылетает nullPointer.
в savedInstanceState сохраняете этот name?
источник

Е

Евгений in Moxy – MVP библиотека под Android
Jorik Fat
в savedInstanceState сохраняете этот name?
Нет, там вообще не предполагается, что это активити пересоздается. (поворот экрана отключен). Мы в нем работаем, потом либо выходим назад, либо запускаем новое и это завершаем.
источник

JF

Jorik Fat in Moxy – MVP библиотека под Android
Евгений
Нет, там вообще не предполагается, что это активити пересоздается. (поворот экрана отключен). Мы в нем работаем, потом либо выходим назад, либо запускаем новое и это завершаем.
если acitivity не перезапускается - то оно и не теряет состояние
источник

JF

Jorik Fat in Moxy – MVP библиотека под Android
но может убиваться в фоне (когда сворачиваете приложение)
источник

Е

Евгений in Moxy – MVP библиотека под Android
А режим don't keep при сворачивании и разворачивании не пересоздает активити?
источник

Е

Евгений in Moxy – MVP библиотека под Android
Jorik Fat
если acitivity не перезапускается - то оно и не теряет состояние
Не увидел, пока печатал. Вероятно, это мой случай.
источник

JF

Jorik Fat in Moxy – MVP библиотека под Android
Евгений
А режим don't keep при сворачивании и разворачивании не пересоздает активити?
не знаю. Но после сворачивания либо спустя 30минут, либо если потребуются ресурсы - процесс умрет
источник

Е

Евгений in Moxy – MVP библиотека под Android
Спасибо за инфу. Надо будет потестить.
источник

NM

Nikita Migunov in Moxy – MVP библиотека под Android
Jorik Fat
При добавлении элементов передавать их в presenter. Presenter передает обновленные данные / новый элемент в activity. Activity передает их в adapter и обновляете адаптер
У меня трудности с сохранением данных в Presenter. Я в Presenter завёл mutableListOf и при нажатии кнопки "Добавить" я вызываю у Presenterа метод где вызыввается метод add у этого списка. Потом при повороте экрана гетером пытаюсь вернуть "сохраненный" список. Но он получается пустым. Как нужно сделать, чтобы было правильно?
источник

JF

Jorik Fat in Moxy – MVP библиотека под Android
Nikita Migunov
У меня трудности с сохранением данных в Presenter. Я в Presenter завёл mutableListOf и при нажатии кнопки "Добавить" я вызываю у Presenterа метод где вызыввается метод add у этого списка. Потом при повороте экрана гетером пытаюсь вернуть "сохраненный" список. Но он получается пустым. Как нужно сделать, чтобы было правильно?
список нужно получать не getter'ом, а через View-метод
источник

JF

Jorik Fat in Moxy – MVP библиотека под Android
Nikita Migunov
У меня трудности с сохранением данных в Presenter. Я в Presenter завёл mutableListOf и при нажатии кнопки "Добавить" я вызываю у Presenterа метод где вызыввается метод add у этого списка. Потом при повороте экрана гетером пытаюсь вернуть "сохраненный" список. Но он получается пустым. Как нужно сделать, чтобы было правильно?
скорее всего Вы не привязываете presenter
источник

JF

Jorik Fat in Moxy – MVP библиотека под Android
Как Вы его инициализируете?
источник

NM

Nikita Migunov in Moxy – MVP библиотека под Android
Я использую аннотацию InjectPresenter и создаю экземпляр Presenter
источник