2012-09-04 118 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