Я хочу достичь этого при загрузке, он может быть приостановлен, остановлен пользователем. Как я могу добиться этого с помощью DownloadManager?
Как приостановить использование DownloadManager?
Ответ 1
Вы можете удалить загрузку из очереди. Затем вы можете запустить его снова, передав заголовок Range
HTTP при повторном добавлении его в очередь (например, упомянутый TryTryAgain). Я не считаю, что в настоящее время это можно сделать легче.
Ответ 2
Возможно, что "пауза" вам не нужна? Поскольку DownloadManager фактически не нужно приостанавливать, чтобы возобновиться.
Вместо этого вы можете быть сработали с возобновлением? Посмотрите, поможет ли это:
как возобновить прерванную загрузку Где решение реализует заголовок запроса диапазона...
// 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
Вы хотите сделать это в веб-приложении?
Я тоже думаю об одном и том же. Возможно, это было возможно при использовании flash или sliverlight и т.д., Но в чистом HTML?
На стороне сервера мы можем использовать RandomAccessFileReader (Apache) или аналогичный FileReader (в байтах) для доступа к файлу и записи в выходной поток. Мы можем помнить, сколько байтов было загружено в предыдущем сеансе пользователем. Но проблема заключается в том, что нет стандартного способа сохранения файла на диск в локальной файловой системе клиента. Вы можете использовать объект ActiveX в IE для записи некоторого файла, если он является файлом последовательного (обычного текста), а не двоичным файлом (например, mp3, flv и т.д.). Но этот ActiveX не является решением. Поэтому вам может понадобиться создать что-то вроде "Downloader" для вашего сайта. Как и Youtube Downloader.