匕首2注入的无作用域对象的生命是什么?

时间:2018-07-10 22:08:23

标签: java android dagger-2

我知道通过Dagger 2注入的作用域对象可以生存,只要持有该对象以及该组件的类还活着!

现在说,例如,我在一个活动中有一个片段,我想让对象在片段中说是Object,而组件位于活动本身中。.

该对象是否应定范围? 我的猜测是不应该的,因为当碎片被销毁时,在活动被销毁之前不会对对象进行垃圾收集,对吧?

因此,如果该对象没有作用域,那么无论该组件是否仍处于活动状态,一旦碎片被销毁,是否会对其进行垃圾回收?

感谢您的时间

1 个答案:

答案 0 :(得分:1)

Dagger组件不保存对未作用域对象的引用,它们始终提供@Provides方法,这意味着它们独立于组件。当您停止使用它们时,它们会死。

是否要限制对象范围取决于您的体系结构,您可能总是想创建新的Presenters,那么作用域是无用的。范围仅在要多次注入同一实例时有用。