暂停android DownloadManager

问题描述 投票:6回答:3

在我的应用程序中,我从服务器下载电影。其中一些非常大(4gb或更多)。我试图将我自己的下载管理器作为一项服务实现,但它并没有放弃。在某些设备上,应用程序只是在没有任何通知的情况下崩溃,整体下载似乎太慢了。

所以,我想使用Android的默认DownloadManager,但我唯一的问题是我无法暂停/恢复它。

有没有办法实现呢?

android android-download-manager
3个回答
2
投票

通过查看源代码我可以看出,这是不受支持的(尽管DownloadManager会在自身失败后自动重试,并在系统重新启动后等)。

如果您还没有看过thisthis,那么看起来有一些关于如何使用这些功能自己实现自己的服务的有用信息。


1
投票

我找到了另一个令人印象深刻

https://github.com/Trinea/android-common


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));
}
© www.soinside.com 2019 - 2024. All rights reserved.