gpt4 book ai didi

android - 如何在 Dagger 2 中制作子组件单例?

转载 作者:行者123 更新时间:2023-11-29 17:18:27 25 4
gpt4 key购买 nike

我想让我的子组件成为一个单例,这样我就可以让 Login Presenter 也成为一个单例。这可能吗?

@Singleton
@Component(modules = AppModule.class)
public interface AppComponent {
LoginComponent getLoginComponent();
}

@Singleton
@Subcomponent(modules = LoginModule.class)
public interface LoginComponent {
}

public class LoginComponent {
@Singleton
LoginPresenter getLoginPresenter();
}

最佳答案

@Subcomponent 不能成为@Singleton

虽然 @Singleton 规范对此有点模糊,但“单例”规范地表示“每个应用程序一个”。由于 @Subcomponent 是通过组件上的工厂方法创建的,唯一您的单例绑定(bind)实例“每个应用程序一个”的方法是,如果单例子组件是单例组件的子组件,它的工厂方法只在每个应用程序中被调用一次。强制执行该约束实际上是不可能的,因此该模式很可能是错误的来源。

关于android - 如何在 Dagger 2 中制作子组件单例?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37797519/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com