我将Dagger2用于android项目 我有两个范围:ActivityScope和FragmentScope 我读了一些示例代码,他们说定义并使用ActivityScope,因此对象将随活动生命周期一起被销毁。而且因为Activity和Fragment有不同的生命周期,所以我们应该有2个范围。
我的问题是: 我是否需要做一些事情让代码知道当我使用ActivityScope时,对象应该在活动生命周期中销毁?或者代码自动知道当我构建dagger并像这样注入Activity
时((DeezFoodzApplication) getApplication()).getAppComponent().inject(this);
答案 0 :(得分:1)
我是否需要做一些事情让代码知道当我使用ActivityScope时,对象应该在活动生命周期中销毁?
否。垃圾收集器会处理它(除非你将它存储在一些静态变量中)。
Dagger除了如何创建或注入您的对象外什么都不知道。它不关心生命周期,何时或何处注入/创建对象,或者如何存储组件。没有魔法,没有服务运行,或其他一些黑客参与。组件只是一些知道如何使用对象填充Activity中的字段的java类。就是这样。
它只是一个像其他任何一个普通的物体,尽量不要过度思考它。您始终可以检查生成的源代码或进行调试。