Kotlin环境下Dagger 2.15:是否需在每个Activity添加注入代码及文档更新?
关于Dagger 2.15在Kotlin中使用的两个问题解答
1. 是否需要在每一个Activity中添加AndroidInjection.inject(this)?
答案是不一定,分两种场景来看:
- 如果你直接继承原生的
AppCompatActivity或Activity,那确实需要在每个Activity的onCreate()方法里(调用super.onCreate(savedInstanceState)之前)手动加上这行代码,确保Dagger能在Activity初始化阶段完成依赖注入。 - 要是想简化重复代码,可以直接继承Dagger封装好的基类:
DaggerAppCompatActivity或者DaggerActivity。这些基类内部已经帮你实现了注入逻辑,你的业务Activity只要继承它们,就不用再手动写注入代码了。
举个Kotlin的示例:
class HomeActivity : DaggerAppCompatActivity() { @Inject lateinit var userRepository: UserRepository override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_home) // 直接使用注入的依赖即可 userRepository.loadUserData() } }
2. Dagger官方文档是否针对最新版本进行了更新?
当然是啦,Dagger的官方文档会跟着版本迭代同步更新。不管是新特性的引入、用法的优化,还是版本间的兼容性变更,文档里都会及时适配当前的最新稳定版本。比如2.15版本中关于Android注入的简化方案,文档里都有对应的示例和详细说明,你可以放心参考官方文档来适配对应版本的Dagger。
内容的提问来源于stack exchange,提问作者Ramprasad Ranganathan
相关产品推荐
相关产品推荐

