Показать сообщение отдельно
Старый 26.04.2018, 16:09   #98
Жека
Дэвелопер
 
Регистрация: 04.09.2005
Адрес: Красноярск
Сообщений: 1,374
Написано 489 полезных сообщений
(для 882 пользователей)
Ответ: Прога "Долги и Займы".

Наконец-то продолжил разработку.

MainActivity.class был 4,500 строк, стал 100! + 120 строк CustomActivity, от которого должны наследоваться все активити проекта.

Не всё нравится в новой архитектуре, но явно лучше прежнего месива.

Из интересного:

1. сделал универсальный ActivityResultManager - регистрируем слушателя результата и стартуем startActivityForResult - всё.
В базовом классе активити результат закидывается в этот менеджер, и делается попытка найти подходящего слушателя.

2. сделал LifeCycleManager и LifeCycleComponent.
Менеджер вешается на базовый класс активити и прокидывает события типа onStart / onStop / и т.п.
во все зарегистрированные для этого активити компоненты.
Добавление компонента в менеджер происходит в конструкторе компонента и скрыто от разработчика.
Выглядит примерно так:
private static final LifeCycleComponent lifeCycleComponent = new LifeCycleComponent(MainActivity.class) {
        @
Override
        
public void onResume(IHaveLiveCycle parent) {
            if (
adView != null) {
                
adView.resume();
            }
        }

        @
Override
        
public void onPause(IHaveLiveCycle parent) {
            if (
adView != null) {
                
adView.pause();
            }
        }
    }; 
(Offline)
 
Ответить с цитированием
Сообщение было полезно следующим пользователям:
ant0N (27.04.2018)