Jetpack 新成员 Hilt 实践(一)启程过坑记,kotlin单例模式

Hilt 提供了以下组件来绑定依赖与 对应的 Android 类的活动范围。

Hilt 提供的组件 对应的 Android 类的活动范围
ApplicationComponent Application
ActivityRetainedComponent ViewModel
ActivityComponent Activity
FragmentComponent Fragment
ViewComponent View
ViewWithFragmentComponent View annotated with @WithFragmentBindings
ServiceComponent Service

注意:Hilt 没有为 broadcast receivers 提供组件,因为 Hilt 直接从 ApplicationComponent 注入 broadcast receivers。

Hilt 会根据相应的 Android 类生命周期自动创建和销毁生成的组件类的实例,它们的对应关系如下表格所示。

Hilt 提供的组件 创建对应的生命周期 销毁对应的生命周期
ApplicationComponent Application#onCreate() Application#onDestroy()
ActiJetpack 新成员 Hilt 实践(一)启程过坑记,kotlin单例模式_第1张图片
vityRetainedComponent Activity#onCreate() Activity#onDestroy()
ActivityComponent Activity#onCreate() Activity#onDestroy()
FragmentComponent Fragment#onAttach() Fragment#onDestroy()
ViewComponent View#super() View destroyed
ViewWithFragmentComponent View#super() View destroyed
ServiceComponent Service#onCreate() Service#onDestroy()

@Provides

它常用于被 @Module 注解标记类的内部的方法,并提供依赖项对象。

@Module
@InstallIn(ApplicationComponent::class)
// 这里使用了 ApplicationComponent,因此 NetworkModule 绑定到 Application 的生命周期。
object NetworkModul

你可能感兴趣的:(程序员,架构,移动开发,android)