AndroidでGuice 3.0を使用してDIを行っています。
私は持っている
public interface APIClient { }
と
public class DefaultAPIClient implements APIClient { }
私がしたことは、私の MyApplication クラスで Guice をブートストラップして、configure メソッドに 1 つのステートメントを持つモジュールを与えることでした。bind(APIClient.class).to(DefaultAPIClient.class);
Guice の例で指示されたことを実行しました
Injector injector = Guice.createInjector(new APIClientModule());
injector.getInstance(APIClient.class);
これを正しく理解していないかもしれませんが、APIClient を使用する複数のアクティビティに APIClient を注入するにはどうすればよいでしょうか?
私はこれをしましたHomeActivity
public class HomeActivity extends RoboActivity {
@Inject APIClient client;
protected void onCreate(Bundle savedInstanceState) {
client.doSomething();
}
}
これは機能せず、私にGuice configuration errors: 1) No implementation for com.mycompany.APIClient was bound
したがって、これを機能させることができた唯一の方法は@Inject、HomeActivity の APIClient クライアントから を削除し、それを使用して注入することでしたclient = Guice.createInjector(new APIClientModule()).getInstance(APIClient.class);
これは、APIClient を使用するすべてのアクティビティでこれを行う必要があるということですか? 私は何か間違ったことをしているに違いない。
どんな助けでも素晴らしいでしょう。ありがとう!