Dagger和AndroidAnnotations - 如何注入@ Pref,@ Bean等?

时间:2014-05-09 18:01:43

标签: android android-annotations dagger

我在我的项目中使用了AndroidAnnotations,只是挂了Dagger + Robolectric + Espresso。

目前,我有一个活动,其中SharedPrefencesclass'注入了'AndroidAnnotations。

public class SomeActivity extends Activity {
  @Pref Prefs_ prefs;
  @Bean SomeManager mManager;
}

现在,如果我想使用Dagger注入这两个,我的@Provide方法应该是什么样的?

非常感谢。

1 个答案:

答案 0 :(得分:0)

您的@Provide方法应该调用生成的bean类的getInstance_方法。此方法创建一个新实例并注入必要的对象。对于生成的首选项,您应该调用构造函数new Prefs_(context)。但是,这不是一个太干净的方式,因为这些生成的方法应该由AA调用。此外Dagger集成仅适用于快照发布,请查看this线程。但正如您所看到的,您现在可以使用Dagger,但这并不方便,而且现在为AA生成的类使用AA注入似乎更好。