2012-09-04 120 views
0

我正在开发一个Android应用程序并使用Roboguice 2.0。Android服务上的依赖注入

除了现在以外,所有的东西都可以使用。我试图注入我的自定义绑定到这样的服务,它不工作。

@Inject 
private TicketService ticketService; 

@Inject 
private PerformanceService performanceService; 

他们已经绑定像这样的(第一个是自定义应用程序上下文):

RoboGuice.setBaseApplicationInjector(
      this, 
      RoboGuice.DEFAULT_STAGE, 
      Modules.override(RoboGuice.newDefaultRoboModule(this)) 
       .with(
        new KoliseoModule(), 
        new DatastoreModule(this), 
        new ServiceModule() 
        )); 


public class ServiceModule extends AbstractModule { 

@Override 
protected void configure() { 
     bind(JsonCheckinTimestampService.class).to(JsonCheckinTimestampServiceImpl.class); 
    bind(PerformanceService.class).to(PerformanceServiceImpl.class); 
    bind(ShowService.class).to(ShowServiceImpl.class); 
    bind(TicketService.class).to(TicketServiceImpl.class); 
    bind(ValidationStatisticsService.class).to(ValidationStatisticsServiceImpl.class); 
} 

}

任何想法?

感谢

+0

什么不工作?在你的代码中哪里是setBaseApplicationInjector语句?有没有特定的理由使用这个语句,而不仅仅是一个XML文件中的模块文件列表? – Christine

+0

不知道可以这样做。 –

+0

但是这并没有解决我的问题,我不得不手动去做。 –

回答

0

这是非常可能,甚至可能保证下,一个应用程序的应用程序子类加载&创建实例的其余部分,因此,你可以尝试实例化。 创建一个“MyApplication extends Application”类并在其“onCreate()”中进行设置,不要忘记在清单中声明。

0

问题是我没有扩展RoboListActivity!谢谢!

+0

你不会扩展Robo类,Robo不会注入:-)很高兴你能继续下去。 – Christine