为什么我们在Dagger 2中需要@SubComponent?

时间:2018-06-03 11:42:35

标签: java android dependency-injection dagger-2 dagger

@Subcomponent在我们的申请中有什么用?

  @Subcomponent
    interface PostActivitySubComponent : AndroidInjector<PostsActivity> {

        @Subcomponent.Builder
        abstract class Builder : AndroidInjector.Builder<PostsActivity>()
    }

使用和不使用此组件时,应用程序正常工作。这是什么目的?

1 个答案:

答案 0 :(得分:1)

@SubComponent对于为您提供specefic屏幕依赖项的Activities / Fragments这样的大型应用程序非常有用。例如,您有AppComponentSubComponent名为ProfileDetailedComponent并且您无法控制内存,但SubComponent可帮助您使用@Scope控制内存。对于每个屏幕,您将创建SubComponentSubComponent注释所有提供@CustomScope,当用户离开当前屏幕时,您可以在{{1}中清除当前组件并释放内存} 方法。总之onDestroy()需要控制你的应用程序内存。