Dagger2组件作为静态全局变量

约翰·D

我的Android应用程序有多个活动。MainActivity在其onCreate()方法中构造了一个Dagger2组件,并将其分配给静态变量,因此任何类都可以调用静态方法MainActivity.getDaggerComponent()来向其自身注入依赖项。

我发现的问题是,当我启动VideoPlayerActivity时,MainActivity对象有时会调用其onPause()。如果发生这种情况,则静态组件变量将设置为null。稍后,VideoPlayerActivity需要注入其依赖项,但是由于没有组件,所以事情一发不可收拾。

如何确保Dagger2组件在所有活动中始终可用?

德米特里·扎耶采夫(Dmitry Zaytsev)

Application类中或仅静态初始化Dagger组件试图在另一个Activity中使用一个Activity的依赖关系可能是一件很错误的事情。这可能会导致内存泄漏,特别是听起来像是设计问题。如果您的第一个Activity已经被销毁怎么办?谁将释放Dagger实例?为什么图属于第一个Activity而不属于第二个?如果用户从第二个开始进入您的应用程序Activity-那么第一个甚至不会被初始化怎么办等等等等。

如果仍然需要Activity实例,则应使用中的Activity特定组件,然后Activity将其他所有内容移至全局(Application宽)组件中。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Angular 2组件全局变量未定义?

来自分类Dev

Java / IntelliJ无法识别Dagger2组件的“ Dagger”关键字

来自分类Dev

具有多个依赖项的Dagger2组件

来自分类Dev

有没有办法在angular2组件中使用index.html中声明的全局变量?

来自分类Dev

如何在angular2组件中访问全局js变量

来自分类Dev

全局和静态全局变量的外部

来自分类Dev

Dagger 2组件依赖项不起作用

来自分类Dev

静态全局变量与全局变量C

来自分类Dev

Angular 2-所有组件的全局变量

来自分类Dev

跨多个组件实例的Angular 2全局变量

来自分类Dev

非静态全局变量与全局静态__thread变量

来自分类Dev

静态全局变量的奇怪行为

来自分类Dev

静态和全局变量存储说明

来自分类Dev

C ++类中的静态全局变量

来自分类Dev

汇编:静态/全局变量的位置

来自分类Dev

CodeMirror作为Angular2组件

来自分类Dev

CodeMirror作为Angular2组件

来自分类Dev

Javascript:如何创建1.接受全局变量作为参数的函数2.更改该全局变量的值?

来自分类Dev

Dagger2范围,每个组件实例

来自分类Dev

Angular 2全局变量

来自分类Dev

服务方法作为细枝全局变量

来自分类Dev

将精灵作为全局变量?

来自分类Dev

使用 shuffelArray 作为全局变量

来自分类Dev

打开的图像作为全局变量?

来自分类Dev

Angular 2组件变量范围和参考

来自分类Dev

Angular2 在页面/组件之间共享变量或全局变量

来自分类Dev

编辑全局变量并返回它(或静态变量)

来自分类Dev

静态变量和全局变量之间的区别

来自分类Dev

在递归函数中用静态变量替换全局变量