Android 提供并注入两个具有不同实现的实例-Dagger 2

Android 提供并注入两个具有不同实现的实例-Dagger 2,android,dependency-injection,dagger-2,Android,Dependency Injection,Dagger 2,我有一个情况,我需要两个改装服务,每一个都有其业务实现 @Provides @Singleton @Named("defaultMulhimService") MulhimService provideMulhimService() { return MulhimService.Creator.newMulhimService(); } @Provides @Singleton @Named("MulhimServ

我有一个情况,我需要两个改装服务,每一个都有其业务实现

    @Provides
    @Singleton
    @Named("defaultMulhimService")
    MulhimService provideMulhimService() {
        return MulhimService.Creator.newMulhimService();
    }

    @Provides
    @Singleton
    @Named("MulhimServiceWithCache")
    MulhimService providesMulhimServiceWithCache(){
        return MulhimService.Creator.newMulhimServiceWithCache(mApplication);
    }

我已经看过这篇文章,其中建议使用@Named注释来区分模块中的多个实例,但我不知道如何注入它们。

您可以使用类似这样的方法()-


基本上,您可以使用@Named限定符注入实例


基本上,您可以使用@Named限定符注入实例。

@MohamedIbrahim是的,只需注释参数。@MohamedIbrahim是的,只需注释参数即可。
@Provides @Named("cached")
@Singleton
OkHttpClient provideOkHttpClient(Cache cache) {
    OkHttpClient client = new OkHttpClient();
    client.setCache(cache);
    return client;
}

@Provides @Named("non_cached") @Singleton
OkHttpClient provideOkHttpClient() {
    OkHttpClient client = new OkHttpClient();
    return client;
}

@Inject @Named("cached") OkHttpClient client;
@Inject @Named("non_cached") OkHttpClient client2;