实现android MVP模式和具有多个片段的活动

时间:2018-01-28 20:32:44

标签: android android-fragments repository-pattern mvp

我有一个包含底部导航和3个片段的活动。我使用存储库模式,让我们全部关于用户对象。目前,每个片段都有自己的演示者,我在onCreateView中进行实例化。我在onCreateView中附加视图并将其分离到onDestroyView中。如果我导航到另一个片段,旋转屏幕或进程死亡,将为每个场景重新创建演示者,我将再次从存储库中获取用户对象(它被缓存,因此每次都没有繁重的操作)。现在针对有问题的情况:

用户点击上传照片 - >正在上传照片并且视图呈现加载指示符 - >用户导航出片段 - >视图已分离 - >演示者取消订阅存储库的上传完整监听器 - >用户导航回第一个片段 - >创建并附加新的演示者 - >他既没有看到任何照片也没有上传指示(上传仍在进行中,但不再有订阅者)

现在几乎没有选择:

  1. 我遗失了一些东西
  2. 我遗漏了一些非常基本的东西
  3. 我应该保持一个活跃的监听器来捕捉任何变化(目前使用单一的 听众)
  4. 我应该在上传图片时取得成功但我会    不会知道失败
  5. 我错过了什么?

1 个答案:

答案 0 :(得分:0)

这里至少可以做一些事情。

  1. 您可以使用存储演示者的保留片段。在加载片段时,您可以检查它是否被保留并使用该片段或创建新片段。 (我不是这方面的专家)。

  2. 您可以创建一个单独的对象/管理器来管理待处理的任务/照片上传。加载屏幕时,您可以让演示者检查未完成的任务,并指示用户何时返回视图。

  3. 您可以将侦听器/订阅者附加到活动或位于片段生命周期之外的其他对象,并在演示者加载时进行查询。

  4. 可能有其他几种方法可以做到这一点,但这些是我想到的前三种方法。