我有一个包含底部导航和3个片段的活动。我使用存储库模式,让我们全部关于用户对象。目前,每个片段都有自己的演示者,我在onCreateView中进行实例化。我在onCreateView中附加视图并将其分离到onDestroyView中。如果我导航到另一个片段,旋转屏幕或进程死亡,将为每个场景重新创建演示者,我将再次从存储库中获取用户对象(它被缓存,因此每次都没有繁重的操作)。现在针对有问题的情况:
用户点击上传照片 - >正在上传照片并且视图呈现加载指示符 - >用户导航出片段 - >视图已分离 - >演示者取消订阅存储库的上传完整监听器 - >用户导航回第一个片段 - >创建并附加新的演示者 - >他既没有看到任何照片也没有上传指示(上传仍在进行中,但不再有订阅者)
现在几乎没有选择:
我错过了什么?
答案 0 :(得分:0)
这里至少可以做一些事情。
您可以使用存储演示者的保留片段。在加载片段时,您可以检查它是否被保留并使用该片段或创建新片段。 (我不是这方面的专家)。
您可以创建一个单独的对象/管理器来管理待处理的任务/照片上传。加载屏幕时,您可以让演示者检查未完成的任务,并指示用户何时返回视图。
您可以将侦听器/订阅者附加到活动或位于片段生命周期之外的其他对象,并在演示者加载时进行查询。
可能有其他几种方法可以做到这一点,但这些是我想到的前三种方法。