Как делиться Dagger2 Подкомпонент между действиями

Мне было интересно, как делиться подкомпонентом между действиями?

Предположим, у меня есть глобальный AppComponent, который живет с Приложением.

Я хочу иметь UserComponent, который живет в нескольких действиях, когда пользователь действительно регистрируется в моем приложении.

Когда пользователь входит в систему, мое приложение создает UserComponent, который другие действия должны извлекать откуда-то, но я не знаю, что является лучшим «где-то».

Должен ли я хранить UserComponent в приложении и создавать getter и метод, который перезагружает компонент? Должен ли я поместить этот компонент внутри объекта «держатель» внутри ApplicationModule и в каждом вспомогательном действии, получить мой компонент, получив «держатель» из ApplicationComponent? Должен ли я просто хранить его в статическом поле? Должен ли я делать что-то еще?

Спасибо за ваши ответы.

Поскольку вы отвечаете за жизненный цикл субкомпонентов, я бы сохранил его в объекте Application с дополнительным getter и setter. Существует только место, которое постоянно живет и может хранить глобальные объекты.

Обертка? Да, если вы хотите иметь более сложный жизненный цикл, но все же он будет храниться в приложении.

Вы должны помнить, что объект приложения также можно убить, поэтому вы сможете восстановить свой UserComponent.

Здесь у вас есть простой пример с исходным кодом, который показывает, как UserComponent может работать: http://frogermcs.github.io/dependency-injection-with-dagger-2-custom-scopes/