Android中的MVP模式中的多个加载器

时间:2016-11-15 04:04:15

标签: android mvp

目前我正在为我的一个模块实现MVP模式,该模块有多个loaders但我在第二次加载器调用中更新通知时遇到问题

场景:

Fragment最初调用Presenter.loadMethod()来加载gridview中的数据,一旦用户点击单个项目Presenter调用Presenter.Download()方法下载文件(不使用download manager

我需要更新进度指示,例如文件是处于下载状态还是进度状态,但是当方向更改时,我在使用InitLoader()时无法更新通知栏。

我也试过restartLoader(),但仍面临同样的问题。

有谁能解释一下解决这个问题的最佳方法是什么?

1 个答案:

答案 0 :(得分:1)

您需要保留正在下载的项目列表,将列表保存在onSaveInstanceState()中。为每个下载项启动单独的loader

onCreate()方法中,您可以恢复正在下载的项目,并通过调用loaders重新连接到getLoaderManager().initLoader(itemId, null, this)

onLoadFinished()中,您应检查项目是否已成功下载并将其状态更改为"已下载",然后从列表中删除该项目。