我可以在onCreate()中使用 AndroidInjection.inject(this)或 AndroidSupportInjection.inject(this)轻松使用依赖注入。我想在java类中使用依赖注入,这既不是活动也不是片段
这是我的AppComponect类
@Singleton
@Component(modules = {
AndroidSupportInjectionModule.class,
ApplicationModule.class,
ActivityBuilder.class})
public interface ApplicationComponent extends AndroidInjector<DaggerApplication> {
void inject(AppController appController);
void inject(APIHelper apiHelper);
@Override
void inject(DaggerApplication daggerApplication);
@Component.Builder
interface Builder{
@BindsInstance
Builder application(Application application);
ApplicationComponent build();
}
非活动/片段类
public class APIHandler {
/**
* Activity reference object
*/
private Activity mActivity;
/**
* Debug TAG
*/
private String TAG = APIHandler.class.getSimpleName();
@Inject
DataManager dataManager;
/**
* Public Constructor for this class
*
* @param mActivity
* @param webAPIResponseListener
*/
public APIHandler(Activity mActivity, WebAPIResponseListener webAPIResponseListener) {
this.mActivity = mActivity;
this.mResponseListener = webAPIResponseListener;
postAPICall();
}
//API call
public void postAPICall() {
//doing something
if(dataManager != null){
dataManager.setName();
}
}
答案 0 :(得分:0)
您只能将{strong> AndroidInjection 与({3}}所用的(Activity,Fragment,Service,ContentProvider和BroadcastReceiver)一起使用。
如果你想在java类中使用依赖注入,它既不是一个活动,也不是上面的任何类,所以你必须创建一个类似于
的接口@Singleton
@Component(modules = AppModule.class)
public interface AppComponent {
AuthComponent plusAuthComponent();
void inject(AnyClassType any);
void inject(AnotherType another);
void inject(Again again);
}
我认为the documentation会对你有帮助。
关于Youtube的另一个惊人的教程this