Не могу понять как работает MvpPresenter. Почему когда Activity пересоздается, то MvpPresenter все еще живет. Что из себя представляет MvpPresenter?
Потому что MvpPresenter использует SingleTone?
Ваша активити наследуется от MvpAppCompatActivity(), так вот если посмотреть у нее метод onDestroy:
@Override
protected void onDestroy() {
super.onDestroy();
getMvpDelegate().onDestroyView();
if (isFinishing()) {
getMvpDelegate().onDestroy();
}
}
То мы увидим, что метод getMvpDelegate().onDestroy() вызывается только в том случае, когда активити финиширует (спокойно переживаем методы onPause(), onStop(), onDestroy() при перевороте к примеру). Заглянем глубже, в метод getMvpDelegate().onDestroy():
/**
* <p>Destroy presenters.</p>
*/
public void onDestroy() {
PresentersCounter presentersCounter = MvpFacade.getInstance().getPresentersCounter();
PresenterStore presenterStore = MvpFacade.getInstance().getPresenterStore();
Set<MvpPresenter> allChildPresenters = presentersCounter.getAll(mDelegateTag);
for (MvpPresenter presenter : allChildPresenters) {
boolean isRejected = presentersCounter.rejectPresenter(presenter, mDelegateTag);
if (isRejected && presenter.getPresenterType() != PresenterType.GLOBAL) {
presenterStore.remove(presenter.getTag());
presenter.onDestroy();
}
}
}
Авторы библиотеки отметили нам его как "убийцу презентеров" :) Первым делом "boolean isRejected = " проверяется нет ли еще ссылок на этот презентер (мб мы инжектили его в несколько вьюшек), и если вернулось true и мы не объявляли презентер глобальным синглтоном, то презентер удаляется из стора и на нем самом вызывается метод onDestroy() Надеюсь получилось объяснить хоть немножко :)
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Пишу проект для андроид устройств и появилась необходимость в использовании баз данныхИмеется бд в которой 3 таблицы:
Здравствуйте! Я начинающий программист в области java на андроидпишу сейчас приложение на андроид - видеоплеер
подскажите, делаю запуск через такую запись: C:\Users\user>javac Examplejava