要在Android中使用Dagger 2注入多个接口和实现类,可以按照以下步骤进行:
public interface ApiService {
// 定义接口方法
}
public class ApiServiceImplementation1 implements ApiService {
// 实现接口方法
}
public class ApiServiceImplementation2 implements ApiService {
// 实现接口方法
}
@Module
public class ApiModule {
@Provides
@Singleton
ApiService provideApiService1(ApiServiceImplementation1 implementation1) {
return implementation1;
}
@Provides
@Singleton
ApiService provideApiService2(ApiServiceImplementation2 implementation2) {
return implementation2;
}
}
@Component(modules = ApiModule.class)
public interface AppComponent {
ApiService getApiService1();
ApiService getApiService2();
}
public class MyApplication extends Application {
private static AppComponent appComponent;
@Override
public void onCreate() {
super.onCreate();
appComponent = DaggerAppComponent.builder()
.apiModule(new ApiModule())
.build();
}
public static AppComponent getAppComponent() {
return appComponent;
}
}
public class MyActivity extends AppCompatActivity {
@Inject
ApiService apiService1;
@Inject
ApiService apiService2;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
MyApplication.getAppComponent().inject(this);
// 使用apiService1和apiService2
}
}
这样就可以在Android中使用Dagger 2注入多个接口和实现类了。注意要在Application类中初始化Dagger组件,并在需要使用的地方注入接口实例。