我有一个使用dagger 2进行依赖项注入的基本应用程序设置,它包含以下代码,用于将对象简单地注入到main活动中,我想动态地注入一个可以在运行时更改的对象。例如:-当用户输入车轮数量时,创建一个可编辑且可重新注入的车辆对象实例。然后在整个活动生命周期中使用该载具对象。
@Singleton
@Component(modules ={AppModule.class})
public interface AppComponent {
void inject(MainActivity mainActivity);
}
---------------------------------------------
@Module
public class AppModule {
private final Application application;
private static final String BASE_URL = "BASE_URL";
AppModule(Application application) {
this.application = application;
}
@Provides
@Singleton
Application application() {
return application;
}
@Provides
@Named(BASE_URL)
String providesBASE_URL() {
return AppUtils.BASE_URL;
}
}
---------------------------------------------
public class TestApplication extends Application{
private AppComponent appComponent;
private TestApplication mContext;
@Override
public void onCreate() {
super.onCreate();
appComponent = DaggerAppComponent.builder()
.appModule(new AppModule(this))
.build();
mContext = this;
}
public AppComponent getAppComponent() {
return appComponent;
}
public TestApplication getmContext() {
return mContext;
}
}
然后我使用
在“活动和片段”中构建appcomponent ((TestApplication) getApplication()).getAppComponent().inject(this);