【问题标题】:How to pause using DownloadManager?如何暂停使用 DownloadManager?
【发布时间】:2011-11-07 10:21:01
【问题描述】:

我想实现下载时可以暂停,用户停止。如何使用 DownloadManager 实现这一目标?

【问题讨论】:

  • 我也想知道这个。我尝试使用 remove(ids) 方法停止下载,如果我们在下载表中检查它似乎可以工作,但在通知区域它仍然显示为正在下载。
  • 我正在谈论的下载表可以通过以下方式访问: Intent i = new Intent(); i.setAction(DownloadManager.ACTION_VIEW_DOWNLOADS); startActivity(i);
  • 我是 Android 新手,但我使用 C++ Qt 创建了一个下载管理器,这是我的实现的链接,如果您打算自己实现下载管理器,那么它可能会有所帮助。 kunalmaemo.blogspot.com/2010/05/…
  • 我见过另一个可以运行的 Android 下载管理器。 stackoverflow.com/a/22346459/185022

标签: java android android-download-manager


【解决方案1】:

您可以从队列中remove a download。然后您可以再次启动它,在将其重新添加到队列时传递Range HTTP 标头(就像提到的 TryTryAgain 一样)。我不认为目前可以更轻松地做到这一点。

【讨论】:

  • 我已经尝试过你的想法,但它似乎不起作用或者我错过了一些重要的东西。我得到已下载的数据字节,并重命名文件以防止在将 downloadmanager.remove(referenceId) 执行到 DownloadManager 时删除。并使用相应的 request.addRequestHeader("Range", "bytes=" +bytesStored+"-"); 再次创建请求并再次排队以再次创建下载。你能帮帮我吗?
【解决方案2】:

您可能并不完全需要“暂停”?至于DownloadManager其实doesn't need to pause要恢复了。

相反,您可能会因恢复而被绊倒?看看这是否有帮助:

how to resume an interrupted download 解决方案在哪里实现 Range 请求标头...

// Open connection to URL.
HttpURLConnection connection =
        (HttpURLConnection) url.openConnection();

// Specify what portion of file to download.
connection.setRequestProperty("Range", "bytes=" + downloaded + "-");
// here "downloaded" is the data length already previously downloaded.

// Connect to server.
connection.connect();

除非您实际上需要允许“暂停”(因为切换文件下载优先级、维护列表或其他更复杂的东西)而不只是提供恢复功能,否则应该会有所帮助。

【讨论】:

    【解决方案3】:

    您的意思是在 Web 应用程序中执行此操作吗?

    我也在考虑同样的事情。这可能使用 flash 或 sliverlight 等,但在纯 HTML 中?

    在服务器端,我们可以使用 RandomAccessFileReader(Apache) 或类似的 FileReader(以字节为单位)来访问文件并写入输出流。我们也可以记住用户在之前的会话中下载了多少字节。但问题是没有标准的方法将文件保存到客户端本地文件系统中的磁盘。您可以在 IE 中使用 ActiveX 对象来编写一些文件,前提是它是顺序(纯文本)文件而不是二进制文件(如 mp3、flv 等)。但是这个 ActiveX 不是一个解决方案。因此,您可能需要为您的网站设计类似“下载器”的内容。就像 Youtube 下载器一样。

    【讨论】:

    • 我说的是android中DownloadManager的API。我想知道 DownloadManager 有关于暂停/恢复的 api。
    猜你喜欢
    • 2016-10-07
    • 1970-01-01
    • 2018-11-11
    • 2014-01-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多