我正在使用Dagger将依赖项注入到Android应用程序中,我偶然发现了一个问题,我不确定如何以一种干净的方式解决问题.
我试图实现的是实现帮助并将其注入我的活动中,并让这些帮助者也包含注入的成员.
什么有效
我的助手注入的活动:
public class MyActivity extends Activity {
@Inject SampleHelper helper;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
((MyApplication) getApplication()).inject(this);
Log.i("debug", "helper = " + helper);
Log.i("debug", "helper context = " + helper.context);
}
}
Run Code Online (Sandbox Code Playgroud)
创建对象图的应用程序:
public class MyApplication extends Application {
private ObjectGraph graph;
@Override
public void onCreate() {
super.onCreate();
graph = ObjectGraph.create(getModules());
}
private Object[] getModules() {
return new Object[] { new MyModule(this) };
}
public void inject(Object target) {
graph.inject(target);
}
}
Run Code Online (Sandbox Code Playgroud)
当我直接实例化SampleHelper类时,注入工作非常完美,而SampleHelper类又接收注入的应用程序上下文: …