【问题标题】:Pause android DownloadManager暂停安卓下载管理器
【发布时间】:2012-10-31 01:38:04
【问题描述】:

在我的应用程序中,我正在从服务器下载电影。其中一些非常大(4gb 或更多)。我试图将我自己的下载管理器作为一项服务来实现,但效果并不好。在某些设备上,该应用会在没有任何通知的情况下自行崩溃,总体而言下载似乎太慢了。

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

有没有办法实现它?

【问题讨论】:

标签: android android-download-manager


【解决方案1】:

从我通过查看源代码可以看出,这是不支持的(尽管DownloadManager 会在自身发生故障后和系统重新启动等后自动重试)。

如果您还没有看过 thisthis,那么那里似乎有一些有用的信息,说明如何使用这些功能自己实现自己的服务。

【讨论】:

    【解决方案2】:

    我发现了另一个令人印象深刻的图书馆

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

    【讨论】:

      【解决方案3】:

      您可以通过将 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));
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-10-05
        • 2014-02-23
        • 1970-01-01
        • 2010-12-19
        • 2012-02-29
        • 1970-01-01
        相关资源
        最近更新 更多