Подтвердить что ты не робот

Как приостановить использование DownloadManager?

Я хочу достичь этого при загрузке, он может быть приостановлен, остановлен пользователем. Как я могу добиться этого с помощью DownloadManager?

4b9b3361

Ответ 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.