2016-11-15 81 views
0

目前我实现了我的模块之一,其具有多个loadersMVP模式,但我从第二装载呼叫多装载机

场景更新通知面临的问题:

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

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

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

任何人都可以请解释什么是解决这个问题的最佳方法?

回答

1

您需要保留下载项目清单,将清单保存在onSaveInstanceState()。为每个下载项目单独启动一个loader

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

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

+0

你把模型中的initLoader和OnLoadFinished放在哪里? – trocchietto

+0

@trocchietto。不,我把它放在一个主持人。你可以在这里看看https://github.com/Buckstabue/HeadHunterSearch/blob/master/app/src/main/java/ru/hh/headhuntersearch/async/loader/BaseAsyncLoader.java – Buckstabue

+0

我看@Buckstabue,I将其放入模型中以使演示者更轻。 VacanciesPresenter.java类是350行,可以测试,我想应该是对的。感谢 – trocchietto