[英]RoboGuice @Inject
在我的Android应用程序项目中,我正在使用RoboGuice 。
在我的项目中,我有一个单例 A类:
@ContextSingleton
public class A{
…
public void method1(){…}
}
然后,我有另一个类B,它需要A的实例,因此,以RoboGuice的方式,我通常在注入 B的类B中声明A的实例:
public class B {
@Inject private A a ;
public void action(){
a.method1(); // call method1() of class A's instance
}
}
有时,对于类B中声明的A实例,我得到了NullPointerException 。我只想验证RoboGuice的一个概念:
是否为了在类B中注入自定义类的实例(例如,类A),必须将类B注入RoboActivity或注入到已在RoboActivity中注入的另一个类(例如C类)中?
您可能自己在某个地方实例化了B( new B()
),然后需要手动调用Injector。
当RoboGuice创建实例B时,它将自动注入依赖项A,但是当您自己创建B时,RoboGuice将不知道它,因此您必须自己调用注入代码。 可以通过调用以下命令来完成:
RoboInjector injector = RoboGuice.getInjector(context);
injector.injectMembersWithoutViews(yourObjectB);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.