Жизненный цикл Dagger 2 компонента, модуля и области применения
Я прочитал много постов и учебных пособий о кинжале 2:
http://frogermcs.github.io/dependency-injection-with-dagger-2-custom-scopes/
https://github.com/codepath/android_guides/wiki/Dependency-Injection-with-Dagger-2
http://fernandocejas.com/2015/04/11/tasting-dagger-2-on-android/
https://github.com/konmik/konmik.github.io/wiki/Snorkeling-with-Dagger-2
От чего зависит жизненный цикл компонента (графа объектов) в Dagger 2?
и т.п.
Но я все еще не понимаю жизненный цикл компонента и его связь с модулем и областью применения. Я хочу убедиться, что я не создаю несколько экземпляров объекта, когда мне нужен только Singleton. Надеюсь, что кто-то может пролить свет на это:
Каков жизненный цикл компонента, встроенного в класс приложения?
Каков жизненный цикл компонента, встроенного в класс Activity или Fragment?
Если мне нужен экземпляр-одиночка из компонента, нужно ли аннотировать компонент с помощью @Singleton или пользовательской области видимости и создавать этот компонент в классе приложения?
Если я создаю компонент в классе приложения, означает ли это, что все экземпляры объектов, доступные через этот компонент, будут одноэлементными во всем приложении, пока приложение не будет убито или перезапущено?
У меня есть компонент с настраиваемой областью действия, скажем, @ActivityScope, и я создаю этот компонент в Activity. Будут ли экземпляры объекта, внедренные через этот компонент, автоматически уничтожаться после вызова onDestroy () этого действия?
Опять же, у меня есть компонент с настраиваемой областью действия, скажем, @ActivityScope, и я создаю этот компонент в ActivityA и ActivityB, будут ли ActivityA и ActivityB совместно использовать одни и те же экземпляры объектов из этого компонента или у них будут свои собственные экземпляры одного и того же объекта?