#android #download #android-download-manager
#Android #Скачать #android-менеджер загрузок
Вопрос:
у меня есть приложение, которое позволяет людям обновлять свои собственные приложения. Он использует диспетчер загрузок и использует очередь «DownloadManager». Проблема в том, что я хочу отслеживать, когда начинается и заканчивается загрузка (время, в течение которого продолжалась загрузка).
У меня есть приемник для проверки завершения загрузки, но как я узнаю, когда она началась, поскольку она находится в очереди?
Если бы я знал, когда его время придет в очередь, я мог бы начать отсчет времени.
Что может быть возможным решением для этого?
Ответ №1:
Возможно, вам потребуется запросить DownloadManager
обновления:
DownloadManager.Query query = new DownloadManager.Query();
query.setFilterById(downloadId);
// downloadId is returned to you upon DownloadManager.enqueue
Cursor cursor = downloadManager.query(query);
if (cursor != null amp;amp; cursor.moveToFirst()) {
try {
int status = cursor.getInt(cursor.getColumnIndex(DownloadManager.COLUMN_STATUS));
// Decide what to do with it
// Status are defined as constants in DownloadManager.STATUS_*
} finally {
cursor.close();
}
}
Комментарии:
1. Спасибо, но в этом случае мне пришлось бы делать это каждую секунду, что было бы неэффективно. Я думаю, что нет решения для того, что я хочу, потому что у этого DownloadManager нет такой опции.
2. Да, я не думаю, что для этого есть прямое решение. DownloadManager, насколько я знаю, не транслирует эти изменения статуса.