1

私は Android アプリを開発しており、Roboguice 2.0 を使用しています。

今を除いて、すべてが信じられないほどうまくいっています。このようなサービスにカスタム バインディングを挿入しようとしていますが、機能していません。

    @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);
}

}

何か案は?

ありがとう

4

1 に答える 1

1

残りのインスタンスが作成される前に、アプリケーションの Application サブクラスがロードおよびインスタンス化されることが保証されている可能性が非常に高いため、それを試すことができます。「MyApplication extends Application」クラスを作成し、その「onCreate()」でセットアップを行います。マニフェストで宣言することを忘れないでください。

于 2012-09-04T14:55:42.390 に答える