使用Dagger依赖注入简单示例
1. 添加依赖项
如需在项目中使用 Dagger,请在 build.gradle 文件中向应用添加以下依赖项。
您可以在此 GitHub 项目中找到最新版本的 Dagger。
2. 创建一个位于应用类中的 Dagger 图
3. 自定义 Application 类
由于生成 Dagger 图的接口( ApplicationComponent )带有 @Component 注解,
因此您可以将其命名为 ApplicationComponent 或 ApplicationGraph。
您通常会将该组件的实例保留在自定义 Application 类中,并在每次需要应用图时调用该实例。
首先 rebuild 项目 ,然后会自动生成 DaggerApplicationComponent类。
接下来,编写自定义 Application 类:
然后修改 manifests文件下的 <application> :
4. 告知 Dagger 要求注入依赖项的对象
您需要告知 Dagger 要求注入依赖项的对象(在本例中为 MainActivity)。
为此,您应提供一个函数,让该函数将请求注入的对象作为参数。
修改 ApplicationComponent 接口:
此函数会告知 Dagger MainActivity 希望访问该图并请求注入。
Dagger 需要满足 MainActivity 所需的所有依赖项。
接口中的函数可以具有任何名称,但在它们以参数形式接收要注入的对象时将其称为 inject() 是 Dagger 中的一种惯例。
5. 告知 Dagger 如何提供依赖项
6. 注入 activity
-
使用
@Inject lateinit var声明要注入的字段,注入的字段不能为私有字段,这些字段的公开范围必须至少为软件包私有。 -
在调用
super.onCreate()之前在 activity 的onCreate()方法中注入 Dagger, 即:(application as MyApplication).appComponent.inject(this)以避免出现 fragment 恢复问题。

