【问题标题】:Can dagger make android activity creation slower?匕首可以使android活动创建速度变慢吗?
【发布时间】:2021-12-04 13:38:01
【问题描述】:

我在活动 A 中有属性数据管理器,我正在通过 dagger 组件在活动 A onCreate() 中实例化它的值实例。

override fun onCreate(savedInstanceState: Bundle?){ 
   datatManager = coreComponent().provideDataManager() 
}

我的问题(可能是一个愚蠢的问题)是:1] 当我在 onCreate() 上调用它时,dagger 是否会生成代码并实例化对象?还是 Dagger 是编译时,它已经在幕后准备好了 Data Manager 依赖的所有类?并在我需要的时候给我参考? 2] 这是否会使创建/启动活动变慢?

【问题讨论】:

    标签: android dependency-injection code-generation dagger


    【解决方案1】:

    Dagger 在编译期间生成代码,因此代码本身已经“就绪”,但这并不意味着类实例已经就绪。默认情况下,Dagger 会在您每次访问它们时创建实例,除非您使用诸如 @Singleton 之类的作用域机制。

    如果注入的实例很重(即在其构造函数中执行很多操作),那么是的,它会对您的活动创建时间产生负面影响。

    【讨论】:

    • 谢谢,很有帮助。
    猜你喜欢
    • 2023-03-18
    • 1970-01-01
    • 1970-01-01
    • 2022-10-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-27
    相关资源
    最近更新 更多