MVP正确的下载大文件的解决方案

时间:2017-12-11 17:34:20

标签: android mvp

我使用MVP。 假设我想下载大文件(大小为20 MB)。

这里的选项:

  1. 在Presenter中下载文件
  2. 在模型中下载文件
  3. 在服务中下载文件
  4. 其他东西
  5. 什么是最佳解决方案?

    P.S。活动可以随时破坏。例如。旋转屏幕时。

1 个答案:

答案 0 :(得分:0)

我建议您将文件下载到存储库中,该存储库是从用例(模型)中调用的。

应该从演示者异步调用用例,并且如果此视图尚未被销毁,则结果将通过回调返回并更新视图。

但是所有数据都应该加载到存储库中(api调用,来自文件的数据,gps位置数据等)。这样,您的模型和演示者不依赖于数据的加载方式和位置,如果数据的来源发生变化,则不应更改。

如果你决定使用DownloadManager,这可能是最好的解决方案,我认为代码应该在演示者,模型和存储库之外,因为它们应该是平台无关的,而不是安卓代码。这样就可以更容易地对这些文件执行单元测试。