presenter и передает себя. В приложении только одна активити. Общение между view и presenter через интерфейс. Вместо модели идет синглетон. Синглетон НЕ имплементит общий интерфейс, т. к. в противном случае синглетоном он бы не являлся. Все запросы ему идут от презентера с колбэками и если надо с контекстом view. Никаких сторонних библиотек. Вопрос в чем: в примерах в интернете часто в onDestroy отписываются от rxjava в презентере. Есть ли смысл мне обнулять ссылки компонентов MVP что в Presentere, что в view? Второй вопрос: в Presentere я не инициализировал объект синглетона, т. е. все запросы идут Singleton.getInstance().metod(mViewContext, new Callback mCallback). Т. е. как таковой ссылки нет и система может потерять синглетон? Так же смотрел логи, если в onDestroy в view сказать Presenter.Destroy то почему то не успевает сработать...
отписка от rx-цепочек идёт, чтобы они не делали лишнюю работу, когда экран уже давно уничтожен, и чтобы долгие задачи не держали в памяти ссылку на Fragment или Activity. Обнулять ссылки на всё подряд не надо, только те, которые могут привести к утечке памяти. Например, жесткие ссылки на те самые Activity, которые создаются неявно в анонимных классах, которыми являются коллбеки.
по поводу синглтона, он у тебя держит свой инстанс в статическом поле, т.е. по факту ссылку на него держит дескриптор класса, который гц никогда не соберёт, если ты конечно не будешь делать каких-нить странных манипуляций с класслоадерами
Обсуждают сегодня