依赖注入:
@HiltAndroidAppclass ExampleApplication : Application() { ... }
对于Application 可以使用 @HiltAndroidApp 表名他会生成Hit组件附加到Application对象的声明周期,并为其提供依赖项
将依赖项注入 Android 类``
在 Application 类中设置了 Hilt 且有了应用级组件后,Hilt 可以为带有 @AndroidEntryPoint 注释的其他 Android 类提供依赖项:
@AndroidEntryPointclass ExampleActivity : AppCompatActivity() { ... }
Hilt 目前支持以下 Android 类:
Application(通过使用@HiltAndroidApp)ActivityFragmentViewServiceBroadcastReceiver
如果您使用 @AndroidEntryPoint 为某个 Android 类添加注释,则还必须为依赖于该类的 Android 类添加注释。例如,如果您为某个 Fragment 添加注释,则还必须为使用该 Fragment 的所有 Activity 添加注释。
如需从组件获取依赖项,请使用 @Inject 注释执行字段注入:
@AndroidEntryPointclass ExampleActivity : AppCompatActivity() {@Inject lateinit var analytics: AnalyticsAdapter...}
注意:由 Hilt 注入的字段不能为私有字段。尝试使用 Hilt 注入私有字段会导致编译错误。
个人理解:@HiltAndroidApp 和 @AndroidEntryPoint注解相当于spring中的compoment @Inject 相当于@controller 注解
定义 Hilt 绑定
为了执行字段注入,Hilt 需要知道如何从相应组件提供必要依赖项的实例。“绑定”包含将某个类型的实例作为依赖项提供所需的信息。
向 Hilt 提供绑定信息的一种方法是构造函数注入。在某个类的构造函数中使用 @Inject 注释,以告知 Hilt 如何提供该类的实例:
class AnalyticsAdapter @Inject constructor(private val service: AnalyticsService) { ... }
