我想通过保留片段处理方向更改 我使用 MVP 模式 如果在演示器中我有可观察的对象(RxAndroid), 这意味着我应该将可观察量传递给该片段 这并不意味着它打破了 MVP 模式的规则,其中活动,片段代表视图?
在 MVP 的特定实现中,通常会在配置更改期间保留演示者。
为此,人们倾向于使用以下设置:
- 装载机(我不喜欢这个)
- 将演示者放在保留片段中(很奇怪,因为 Activity 的
super.onCreate()
会自动重新创建片段,但其他方面工作正常) - 通过
onRetainCustomNonConfigurationInstance()
保留演示者,您可以使用该对象返回对象,并且可以使用getLastCustomNonConfigurationInstance()
获取它。
保留片段是视图的一部分,它将管理演示者的"生命周期",以防止其死亡。
在这种情况下,您通常会订阅/将您的视图附加到演示者,并根据生命周期事件取消订阅/分离您的视图 - 通常onStart()/onStop()
,尽管我认为onCreate()/onDestroy()
和onCreateView()/onDestroyView()
更有意义。
所以不,它不会破坏 MVP 的想法,只要保留的片段是你"视图"的一部分,或者至少演示者本身对其存在是不可知的。
但是,使用onRetainCustomNonConfigurationInstance()
要容易得多。