我阅读了很多关于Dagger 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
等等。
但我仍然对组件的生命周期以及它与模块和作用域的关系感到困惑。 我希望确保在只需要单例时不会创建多个对象实例。 希望有人能解答以下问题:
在应用程序类中构建的组件的生命周期是什么?
在Activity或Fragment类中构建的组件的生命周期是什么?
如果我想从组件获取单例实例,我必须使用@Singleton或自定义作用域对组件进行注释,并在应用程序类中构建该组件吗?
如果我在应用程序类中构建一个组件,这是否意味着通过此组件可用的所有对象实例将是整个应用程序中的单例实例,直到应用程序被终止或重新启动?
我有一个具有自定义作用域(例如@ActivityScope)的组件,并且我在Activity中构建了该组件,那么通过该组件注入的对象实例是否会在此Activity的onDestroy()调用后自动销毁?
我有一个带有自定义作用域(@ActivityScope)的组件,我在ActivityA和ActivityB中构建此组件。那么,ActivityA和ActivityB会共享来自此组件的相同对象实例,还是它们将拥有相同对象的自己的实例?