【发布时间】:2016-10-17 08:14:39
【问题描述】:
我已经阅读了很多关于匕首 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
What determines the lifecycle of a component (object graph) in Dagger 2?
等等
但我仍然对组件的生命周期以及它与模块和范围的关系感到困惑。当我只想要一个单例时,我想确保不会创建一个对象的多个实例。希望有人能对这些有所了解:
应用程序类中构建的组件的生命周期是什么?
在 Activity 或 Fragment 类中构建的组件的生命周期是什么?
如果我想要来自组件的单例实例,我是否必须使用 @Singleton 或自定义范围注释组件并在应用程序类中构建该组件?
如果我在应用程序类中构建一个组件,这是否意味着通过该组件可用的所有对象实例都将是整个应用程序中的单例实例,直到应用程序被杀死或重新启动?
我有一个自定义范围的组件,比如说@ActivityScope,我在一个 Activity 中构建该组件,通过该组件注入的对象实例是否会在该 Activity 的 onDestroy() 被调用后自动销毁?
再次,我有一个具有自定义范围的组件,比如说@ActivityScope,我在 ActivityA 和 ActivityB 中构建这个组件,ActivityA 和 ActivityB 将共享来自该组件的相同对象实例,或者它们将拥有自己的相同对象实例?
【问题讨论】:
标签: android dependency-injection dagger-2