Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/394.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 为什么我们需要匕首2中的@SubComponent?_Java_Android_Dependency Injection_Dagger 2_Dagger - Fatal编程技术网

Java 为什么我们需要匕首2中的@SubComponent?

Java 为什么我们需要匕首2中的@SubComponent?,java,android,dependency-injection,dagger-2,dagger,Java,Android,Dependency Injection,Dagger 2,Dagger,@Subcomponent在我们的应用程序中有什么用途 @Subcomponent interface PostActivitySubComponent : AndroidInjector<PostsActivity> { @Subcomponent.Builder abstract class Builder : AndroidInjector.Builder<PostsActivity>() } 无论是否使用此组

@Subcomponent在我们的应用程序中有什么用途

  @Subcomponent
    interface PostActivitySubComponent : AndroidInjector<PostsActivity> {

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

无论是否使用此组件,应用程序都可以正常工作。这样做的目的是什么?

@SubComponent对于大型应用程序非常有用,其中活动/片段为specefic屏幕提供依赖项。例如,您有名为ProfileDetailedComponent的AppComponent和子组件,您无法控制内存,但子组件可以帮助您使用@Scope控制内存。对于每个屏幕,您将使用@CustomScope创建子组件和带注释的子组件,并且当用户离开当前屏幕时,您可以使用onDestroy方法清除当前组件并释放内存。总之,@SubComponent需要控制应用程序内存。

SubComponent是一种允许范围继承的机制。