实施MVP时,在Android中保留Presenters的最佳做法是什么?

问题描述 投票:1回答:1

你是怎么做到的? 配置更改时如何保存Presenters?

另一个问题:离开“片段/活动”时是否可以保留Presenters?

我不介意使用诸如Mosby或Nucleus之类的MVP框架,但我认为Mosby的方法并不是最好的方法。 根据SO上的许多帖子,不应在带有UI的片段中使用Fragment.setRetainInstance(true),也不应将其与Backstack一起使用。 也许有更好的方法?

android android-fragments mvp
1个回答
2
投票

Nucleus内部使用静态贴图。 实际上,Nucleus所做的更多是从演示者执行的请求(rxjava)到演示者实例的映射。 这意味着核心不保留Presenter实例,而是保留请求(RxJava)并将其重新附加到新的Presenter实例。

Mosby 2.0使用保留的Fragment或活动lastNonConfiguration方法保留演示者。 保留具有UI的片段没有错。 保留碎片的唯一缺点是您不能将它们放在后方堆栈中。 在Mosby 3.0(可用的SNAPSHOT,但尚未实现后堆栈上的片段)中,所有演示者都将保存在绑定到宿主活动生命周期的Map中。 这意味着,Presenter可以保留在后堆栈上,以防止非再训练片段。 与Nucleus相比,它们只能保留到Activity生命周期,或由用户从后退堆栈中移除(导航)。 此外,这还允许Mosby 3.0也支持自定义视图(FrameLayout等)。

is it possible to preserve Presenters when navigating away from Fragment/Activity?

是的,但是为什么需要您呢? 如果视图完全不可见,是否真的需要保留演示者? 尽管如此,Nucleus和Mosby都能做到这一点。

© www.soinside.com 2019 - 2024. All rights reserved.