gpt4 book ai didi

android - 实现 MVP 时,在 Android 中保留 Presenter 的最佳做法是什么?

转载 作者:行者123 更新时间:2023-11-29 19:59:56 26 4
gpt4 key购买 nike

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

另一个问题:是否可以在离开 Fragment/Activity 时保留 Presenter?

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

最佳答案

Nucleus 内部使用静态 map 。实际上 Nucleus 做的更多的是从 Presenter 执行的 Request (rxjava) 到 Presenter 实例的映射。这意味着 nucleus 没有保留 Presenter 实例,而是保留 Request (RxJava) 并将其重新附加到新的 Presenter 实例。

Mosby 2.0 使用保留 Fragments 或 Activity 的 lastNonConfiguration 方法来保留演示者。保留具有 UI 的 fragment 没有错。保留 fragment 的唯一缺点是您不能将它们放在后端堆栈中。在 Mosby 3.0 中(SNAPSHOT 可用但 Fragment on backstack 尚未实现)所有演示者都将保存在绑定(bind)到托管 Activity 生命周期的 Map 中。这意味着,Presenter 可以保留在 backstack 上用于非重新训练 fragment 。与 Nucleus 相比,它们仅在 Activities 生命周期内保留或由用户从后台堆栈中删除(导航)。此外,这允许 Mosby 3.0 也支持自定义 View (FrameLayout 等)。

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

是的,但为什么需要你呢?如果 View 根本不可见,是否真的需要保留演示者?尽管如此,Nucleus 和 Mosby 都可以做到这一点。

关于android - 实现 MVP 时,在 Android 中保留 Presenter 的最佳做法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36433862/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com