本文并非原创,查看原文
在 Dagger 2 官方文档中我找到一句话,非常清楚地描述了@Scope
的原理:
When a binding uses a scope annotation, that means that the component object holds a reference to the bound object until the component object itself is garbage-collected.
当 Component
与 Module
、目标类(需要被注入依赖)使用 Scope
注解绑定时,意味着 Component
对象持有绑定的依赖实例的一个引用直到 Component
对象本身被回收。也就是作用域的原理,其实是让生成的依赖实例的生命周期与 Component
绑定,Scope
注解并不能保证生命周期,要想保证赖实例的生命周期,需要确保 Component
的生命周期。
网友评论