使用@ContributesAndroidInjector 时如何为 SubComponent 指定范围

How to specify Scope for SubComponent when using @ContributesAndroidInjector

我正在尝试了解 from this blog post. I understood the concept of @ContributesAndroidInjector 中带有 Dagger 2 的新 Android 注入器,以及它如何避免博客中所述的重复代码

UI subcomponents(MainActivityComponent and DetailActivityComponent) are just like bridge in the graph. We don’t even have to use our brain to create this class.

因此,如果您希望您的子组件位于不同的范围内(例如@PerActivity),我们将如何实现这一点,因为我们根本没有创建子组件?

像这样:

@PerActivity
@ContributesAndroidInjector
abstract YourActivity yourActivity();

这将生成如下内容:

@Subcomponent
@PerActivity
public interface YourActivitySubcomponent extends AndroidInjector<YourActivity> {
    @Subcomponent.Builder
    abstract class Builder extends AndroidInjector.Builder<YourActivity> {}
}