Не могу понять как работает 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() Надеюсь получилось объяснить хоть немножко :)
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Пишу проект для андроид устройств и появилась необходимость в использовании баз данныхИмеется бд в которой 3 таблицы:
Здравствуйте! Я начинающий программист в области java на андроидпишу сейчас приложение на андроид - видеоплеер
подскажите, делаю запуск через такую запись: C:\Users\user>javac Examplejava