如何在AndroidAnnotations驱动的适配器中传递Application而不是Activity上下文?

时间:2016-06-24 09:13:57

标签: android android-annotations

我的活动使用需要上下文的适配器

@EActivity
public class MyActivity extends Activity {

    @Bean
    MyAdapter adapter;

}

适配器本身:

@EBean
public class MyAdapter extends Adapter {

    @RootContext
    Context context;

}

当我打开生成的活动时,我看到:

adapter = MyAdapter_.getInstance_(getActivity());

Activity上下文泄漏了内存。我想将其更改为Application Context 我想,我可以使用setter来做到这一点,但我不得不以某种方式计算它,所以我可以让AndroidAnnotations通过Application Context吗?

1 个答案:

答案 0 :(得分:1)

您无法使用Context传递应用@RootContext,但可以使用@App注入应用对象:

@EApplication
public class MyApp extends Application {
  ...
}
// do not forget to register MyApp_ in the manifest

@App
MyApp myApp;

然后您可以将其用作应用Context