Итак, я использую диспетчер загрузки для загрузки нескольких файлов в свое приложение. Мне нужны эти файлы, чтобы закончить загрузку, прежде чем запускать определенную деятельность. Как я могу проверить, есть ли активные загрузки, поэтому я могу сказать пользователю дождаться завершения загрузки. И затем, когда они закончатся, мне нужно сделать кнопку видимой. Я искал это, даже сам пробовал код (слепо), и ничего не работает. Если кто-то может подтолкнуть меня в правильном направлении, я был бы благодарен.Проверьте, активны ли загрузки
2
A
ответ
6
Используйте query()
, чтобы узнать о загрузках. Когда вы вызываете enqueue()
, возвращаемое значение является идентификатором для загрузки. Вы можете запросить по статусу, а также:
Cursor c = downloadManager.query(new DownloadManager.Query()
.setFilterByStatus(DownloadManager.STATUS_PAUSED
| DownloadManager.STATUS_PENDING
| DownloadManager.STATUS_RUNNING));
Чтобы получать уведомления, когда загрузка закончена, зарегистрировать BroadcastReceiver
для ACTION_DOWNLOAD_COMPLETE
:
BroadcastReceiver onComplete = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
// do something
}
};
registerReceiver(onComplete, new IntentFilter(
DownloadManager.ACTION_DOWNLOAD_COMPLETE));
Обратите внимание, что вы также должны слушать для ACTION_NOTIFICATION_CLICKED
вещания, чтобы знать, когда пользователь щелкнул уведомление о запущенной загрузке.