Приложение для Android имеет несколько видов деятельности. MainActivity создает компонент Dagger2 в своем методе onCreate() и назначает его статической переменной, поэтому любой класс может вызвать статический метод MainActivity.getDaggerComponent(), чтобы затем ввести себя в зависимости.Компонент Dagger2 как статическая глобальная переменная
Проблема, которую я обнаруживаю, заключается в том, что когда я запускаю свою VideoPlayerActivity, объект MainActivity иногда получает свою функцию onPause(). Если это произойдет, статическая переменная компонента получает значение null. В более поздние моменты, VideoPlayerActivity должен вводить свои зависимости, но нет компонента, чтобы все взорвалось.
Как обеспечить постоянный доступ к компоненту Dagger2 для всех видов деятельности?
Инициализировать его в классе 'Application' или просто статически –
Мне нужна ссылка на MainActivity для передачи в конструктор компонента, поэтому я не думаю, что любой из этих методов будет работать. Если бы мне не пришлось, это было бы прекрасно. –
Возможно, вы ошиблись в попытке использовать зависимости одного «Активность» в другой «Деятельности». Это может вызвать утечку памяти и, в частности, звучит как проблема с дизайном. Не могли бы вы предоставить более подробную информацию о том, что вы на самом деле пытаетесь решить с помощью инъекции зависимостей? –