在我的应用程序中,我从服务器下载电影。其中一些非常大(4gb或更多)。我试图将我自己的下载管理器作为一项服务实现,但它并没有放弃。在某些设备上,应用程序只是在没有任何通知的情况下崩溃,整体下载似乎太慢了。
所以,我想使用Android的默认DownloadManager,但我唯一的问题是我无法暂停/恢复它。
有没有办法实现呢?
答案 0 :(得分:2)
通过查看源代码我可以看出,这是不受支持的(尽管DownloadManager
会在失败后自动重试,并在系统重启后等等。)
答案 1 :(得分:1)
答案 2 :(得分:0)
您可以通过将Downloads.Impl.COLUMN_CONTROL设置为Downloads.Impl.CONTROL_PAUSED来暂停。
并通过设置Downloads.Impl.COLUMN_CONTROL和Downloads.Impl.CONTROL_RUN继续
public void pauseOrResumeDownload(boolean pause, long... ids) {
ContentValues values = new ContentValues();
if (pause) {
values.put(Downloads.Impl.COLUMN_CONTROL, Downloads.Impl.CONTROL_PAUSED);
} else {
values.put(Downloads.Impl.COLUMN_STATUS, Downloads.Impl.STATUS_PENDING);
values.put(Downloads.Impl.COLUMN_CONTROL, Downloads.Impl.CONTROL_RUN);
}
mResolver.update(mBaseUri, values, getWhereClauseForIds(ids), getWhereArgsForIds(ids));
}