使用 MVP 在 Android 中传递捆绑意图

2024-04-02

我想通过 Bundle 意图使用 Parceler 将模型数据传递到另一个活动中。我的问题是如何将数据从 Presenter 传递到 View 层以在 android 中使用 MVP 架构的另一个活动中显示?


这当然是可能的。假设您的 Activity 实现了 View 接口,您在接口中将有一个方法,如下所示:

void startNextActivity(MyData data);

然后在活动中:

@Override
void startNextActivity(MyData data) {

    // create bundle
    // send intent
}

在演示者中:

view().startNextActivity(myData);

但我不建议你这样做

我认为有不少classic在进行 MVP 时应谨慎使用 Android 模式。这包括诸如此类的事情onActivityResult& 使用以下方法在 Activity/Fragment 之间传递数据Bundle.

为了使事情尽可能地解耦和干净,活动应避免与其他活动对话,演示者不应与其他演示者对话,等等。如果您需要在另一个活动中访问一个活动的数据,请将其发送到模型进行持久化。然后,下一个 Activity 将由其 Presenter 发送此数据,Presenter 将从模型中获取该数据。

下图给出了更好的概述:

在启动下一个 Activity 时,它们不会将详细信息作为 Bundle 的一部分传递,而是保留在模型中以供下一个 Activity 加载。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

使用 MVP 在 Android 中传递捆绑意图 的相关文章

随机推荐