Java 如何使用DownloadManager暂停?

Java 如何使用DownloadManager暂停?,java,android,android-download-manager,Java,Android,Android Download Manager,我想实现下载时,它可以暂停,由用户停止。如何使用DownloadManager实现这一点?您的意思是在Web应用程序中实现这一点吗? 我也在想同样的事情。这可能在flash或sliverlight等中实现,但在纯HTML中 在服务器端,我们可以使用RandomAccessFileReader(Apache)或类似的FileReader(以字节为单位)来访问文件并写入输出流。我们还记得用户在前一个会话中下载了多少字节。但问题是,在客户端的本地文件系统中,没有将文件保存到磁盘的标准方法。您可以在IE

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

您的意思是在Web应用程序中实现这一点吗?

我也在想同样的事情。这可能在flash或sliverlight等中实现,但在纯HTML中

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

也许“暂停”对你来说并不必要?实际上是要恢复的

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

解决方案正在实现范围请求标头的位置

// 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();

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

您可以从队列中选择。然后,您可以再次启动它,在将其重新添加到队列时传递
范围
HTTP头(如Trytry再次提到的)。我不相信现在可以更容易地做到这一点。

我也想知道这一点。我试图用remove(ids)方法停止下载,如果我们在downloads表中检查它,它似乎可以工作,但在通知区域它仍然显示为downloading;i.setAction(DownloadManager.ACTION\u VIEW\u下载);星触觉(i);我是Android新手,但我用C++ QT创建了一个下载管理器,这里是我的实现的链接,如果你打算自己实现下载管理器,那么它可能会有帮助。我见过另一个Android下载管理器可以工作。我说的是android中DownloadManager的API。我想知道DownloadManager有关于暂停/恢复的api。我尝试过你的想法,但似乎不起作用,或者我错过了一些重要的东西。我获取已下载的数据字节,并重命名该文件,以防止在执行downloadmanager.remove(referenceId)时将其删除到downloadmanager中。并使用相应的请求再次创建请求。addRequestHeader(“Range”、“bytes=“+bytesStored+”-”);并再次排队以再次创建下载。你能帮我吗?