我使用MVP。 假设我想下载大文件(大小为20 MB)。
这里的选项:
什么是最佳解决方案?
P.S。活动可以随时破坏。例如。旋转屏幕时。
答案 0 :(得分:0)
我建议您将文件下载到存储库中,该存储库是从用例(模型)中调用的。
应该从演示者异步调用用例,并且如果此视图尚未被销毁,则结果将通过回调返回并更新视图。
但是所有数据都应该加载到存储库中(api调用,来自文件的数据,gps位置数据等)。这样,您的模型和演示者不依赖于数据的加载方式和位置,如果数据的来源发生变化,则不应更改。
如果你决定使用DownloadManager,这可能是最好的解决方案,我认为代码应该在演示者,模型和存储库之外,因为它们应该是平台无关的,而不是安卓代码。这样就可以更容易地对这些文件执行单元测试。