JetPack系列之Hilt使用

本文详细介绍了Android JetPack组件Hilt的使用,包括基本概念、注解、组件Component、模块Module以及在多模块应用中的实践。Hilt通过注解实现依赖注入,提供Application、Activity、Fragment等组件的生命周期管理,简化了Android开发中的依赖注入过程。

1、基本介绍:

  • 字段注入:Hilt 需要知道如何从相应组件Component中提供必要依赖项的实例。
  • 绑定:将某个类型的实例作为依赖项提供所需的信息。

2、注解:

@HiltAndroidApp:

  • 所有使用 Hilt 的应用都必须包含一个带有 @HiltAndroidApp 注释的 Application 类。
  • @HiltAndroidApp 会触发 Hilt 的代码生成操作,生成的代码包括应用的一个基类,该基类充当应用级依赖项容器。
  • 生成的这一 Hilt 组件会附加到 Application 对象的生命周期,并为其提供依赖项。
  • 此外,它也是应用的父组件,这意味着,其他组件可以访问它提供的依赖项。
@HiltAndroidApp
class MyApplication:Application() {
   
    }

@AndroidEntryPoint:

  • 在 Application 类中设置了 Hilt 且有了应用级组件后,@AndroidEntryPoint 会为项目中的每个 Android 类(Activity、Fragment、Service、View、BroadcastReceiver)生成一个单独的 Hilt 组件Component。这些组件可以从它们各自的父类接收依赖项。
  • 如果您使用 @AndroidEntryPoint 为某个 Android 类添加注释,则还必须为依赖于该类的 Android 类添加注释。例如,如果您为某个 Fragment 添加注释,则还必须为使用该 Fragment 的所有 Activity 添加注释。
  • Hilt 仅支持扩展 ComponentActivity 的 Activity,如 AppCompatActivity。
  • Hilt 仅支持扩展 androidx.Fragment 的 Fragment。

@Inject:

  • 由 Hilt 注入的字段不能为私有字段。
  • 用在属性字段上或者构造函数上,用于注入字段或者提供构造类实例。

@InstallIn:

  • 声明当 Hilt 生成Component时(比如ActivityComponent是自动生成的),被注解标识的目标类应该被包含在哪些Component中。
  • 只能用于有@Module、@EntryPoint注释的类中。
@Module
@InstallIn(ActivityComponent::class)  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值