You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Hilt中如何实现每次注入同一类型依赖都返回全新实例?

问题根源

你给AdapterA的Provider方法加了@ActivityScoped作用域注解,该注解的作用就是限定绑定的实例在对应ActivityComponent的整个生命周期内仅初始化一次,同一Activity的所有注入请求都会复用同一个实例,这正好和你要的「每次注入都拿新实例」的需求相悖。

解决方案

直接删掉@ActivityScoped注解即可,无作用域的绑定在Hilt中的默认行为就是:每次发起注入请求、或者每次依赖注入框架需要调用该Provider获取实例时,都会生成一个全新的对象。
修改后的Module代码如下:

@Module
@InstallIn(ActivityComponent::class)
class AdapterModule {
    
    @Provides
    fun provideAdapterAInstace(): AdapterA {
        return AdapterA()
    }
}

补充参考:Hilt常见作用域说明

  • @Singleton:全局Application生命周期内单实例
  • @ActivityScoped:对应Activity生命周期内单实例
  • @FragmentScoped:对应Fragment生命周期内单实例
  • 无任何作用域注解:每次注入都生成新实例

内容的提问来源于stack exchange,提问作者bitDeveloper

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.07 11:39:03