使用保留片段是否打破了 MVP 模式的想法,其中片段/活动表示像视图?



我想通过保留片段处理方向更改 我使用 MVP 模式 如果在演示器中我有可观察的对象(RxAndroid), 这意味着我应该将可观察量传递给该片段 这并不意味着它打破了 MVP 模式的规则,其中活动,片段代表视图?

在 MVP 的特定实现中,通常会在配置更改期间保留演示者。

为此,人们倾向于使用以下设置:

  • 装载机(我不喜欢这个)
  • 将演示者放在保留片段中(很奇怪,因为 Activity 的super.onCreate()会自动重新创建片段,但其他方面工作正常)
  • 通过onRetainCustomNonConfigurationInstance()保留演示者,您可以使用该对象返回对象,并且可以使用getLastCustomNonConfigurationInstance()获取它。

保留片段是视图的一部分,它将管理演示者的"生命周期",以防止其死亡。

在这种情况下,您通常会订阅/将您的视图附加到演示者,并根据生命周期事件取消订阅/分离您的视图 - 通常onStart()/onStop(),尽管我认为onCreate()/onDestroy()onCreateView()/onDestroyView()更有意义。


所以不,它不会破坏 MVP 的想法,只要保留的片段是你"视图"的一部分,或者至少演示者本身对其存在是不可知的。

但是,使用onRetainCustomNonConfigurationInstance()要容易得多。

最新更新