在活动中使用Dagger持久化Presenter

4

当您在旋转时向活动注入具有活动范围的演示者时,如何在活动中保持演示者处于活动状态?

我的理解是每次都会销毁演示者和活动,并创建一个新的演示者和活动。是否有一种方法可以在重新创建活动时保持演示者的活跃性?

1个回答

0

是的,如果我们谈论的是配置更改(例如旋转),那么就可以这样做。

您可以覆盖FragmentActivity的方法

fun onRetainCustomNonConfigurationInstance():Any - 以保存您的Presenter在旋转时。

要在onCreate()期间恢复相同的实例, 只需调用 getLastCustomNonConfigurationInstance():Any

这里有一个在BaseActivity中保存Dagger 2子组件的示例。当您使用保存dagger的组件而不仅仅是presenter的方法时,创建presenter变得非常容易:

  • 将prestenter构造函数标记为@Inject
  • 将目标activity中的presenter字段标记为@Inject
  • 从BaseActivity获取注入器(如链接类中所示),并在目标activity的onCreate期间进行注入。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接