繁体   English   中英

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

[英]What are the best practices to preserve Presenters in Android when implementing MVP?

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

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

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

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都能做到这一点。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM