保留匕首 2 子组件
Retaining Dagger 2 Subcomponent
是否可以通过配置更改为 activity 保留 Dagger 2 子组件?
似乎只有两种可能的解决方案是:
- 使用保留的片段,或者
- 保存子组件中对象的状态并使用 savedInstanceState 恢复它
Bundle
。
这两个解决方案看起来都很混乱 - 有没有人用更简洁的解决方案解决了这个问题?
你的问题听起来像是你不应该尝试做的事情。
创建并依赖于 activity 的组件可能会引用 activity。保留该组件听起来像是内存泄漏的主要原因。
当您的配置更改时,activity 将被销毁,并且与其关联的所有内容 也应被销毁。
所以你提到的——将状态保存在包 onSaveInstanceState
中并重新创建它——对我来说听起来是最干净的解决方案。
是否可以通过配置更改为 activity 保留 Dagger 2 子组件? 似乎只有两种可能的解决方案是:
- 使用保留的片段,或者
- 保存子组件中对象的状态并使用 savedInstanceState 恢复它
Bundle
。
这两个解决方案看起来都很混乱 - 有没有人用更简洁的解决方案解决了这个问题?
你的问题听起来像是你不应该尝试做的事情。
创建并依赖于 activity 的组件可能会引用 activity。保留该组件听起来像是内存泄漏的主要原因。
当您的配置更改时,activity 将被销毁,并且与其关联的所有内容 也应被销毁。
所以你提到的——将状态保存在包 onSaveInstanceState
中并重新创建它——对我来说听起来是最干净的解决方案。