Response от download manager

273
28 ноября 2017, 22:09

Нужно выполнять определенные действия с файлом, но только после того, как его скачивание завершится. Файл скачиваю через DownloadManager. Как я могу получить колбэк и выполнить нужные действия только когда файл скачен?

Answer 1

Нужно зарегистрировать BroadcastReceiver на DownloadManager.ACTION_DOWNLOAD_COMPLETE:

    BroadcastReceiver receiver = new BroadcastReceiver() {
        @Override
        public void onReceive(Context context, Intent intent) {
            String action = intent.getAction();
            if (DownloadManager.ACTION_DOWNLOAD_COMPLETE.equals(action)) {
                long id = intent.getLongExtra(DownloadManager.EXTRA_DOWNLOAD_ID, 0);
                Query query = new Query();
                query.setFilterById(id);
                Cursor c = dm.query(query);
                if (c.moveToFirst()) {
                    int columnIndex = c.getColumnIndex(DownloadManager.COLUMN_STATUS);
                    if (DownloadManager.STATUS_SUCCESSFUL == c.getInt(columnIndex)) {
                        // TODO файл успешно загружен 
                        // здесь можно начинать
                        // с ним работать
                    }
                }
             }
         }
    };        
    context.registerReceiver(receiver, new IntentFilter(
                         DownloadManager.ACTION_DOWNLOAD_COMPLETE));
READ ALSO
Не записывается в Map все значения

Не записывается в Map все значения

Здравствуйте! Не могу понять что не так

284
Создание таблицы SQLite

Создание таблицы SQLite

Есть код, он выводит информацию из БД, таблица называется messeg и все работаетЕсли меняю messeg на что либо еще, вылетает с ошибкой, пишет что нет...

256
Помогите!!! Что не так? [требует правки]

Помогите!!! Что не так? [требует правки]

помогите не получилось выполнить задачуне происходит запись! Задача: чтение данных из двух файлов: в одном код, во втором название

267
Как быстро распарсить сложный json? [дубликат]

Как быстро распарсить сложный json? [дубликат]

На данный вопрос уже ответили:

273