1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/HarmonyOS-tpc-okdownload

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
Внести вклад в разработку кода
Синхронизировать код
Отмена
Подсказка: Поскольку Git не поддерживает пустые директории, создание директории приведёт к созданию пустого файла .keep.
Loading...
README.md

OkDownload

Надёжный, гибкий, быстрый и мощный механизм загрузки.

Интеграция и конфигурация

Метод 1:

Чтобы интегрировать OkDownload, okdownload-breakpoint-sqlite, okdownload-connection-okhttp и okdownload-filedownloader в свой проект на основе HarmonyOS, выполните следующие шаги:
    * Импортируйте указанные модули в свой проект HarmonyOS с помощью команды `implementation`:
        * `implementation project(':okdownload')`,
        * `implementation project(':okdownload-breakpoint-sqlite')`,
        * `implementation project(':okdownload-connection-okhttp')`,
        * `implementation project(':okdownload-filedownloader')`.
    * Кроме того, в модуле OkDownload необходимо добавить зависимость от ohos.jar. В противном случае компиляция не пройдёт. Формат добавления зависимости следующий:
        * ```api files('D:\\HOSDEMO\\ohosjar\\ohos.jar')```.
        * Это означает, что нужно скопировать файл ohos.jar из SDK в папку D:\HOSDEMO\ohosjar, а затем заменить путь на фактический путь к файлу ohos.jar на вашем компьютере.

### Метод 2:

Скомпилируйте эти модули для создания jar-файла и поместите его в каталог libs. * Для этого нажмите Tasks в разделе Gradle для соответствующего модуля (например, OkDownload), затем выберите jar для генерации. * Сгенерированный jar-файл будет находиться в каталоге build\libs соответствующего модуля. * Затем добавьте сгенерированный jar в соответствующий каталог entry или module libs.

Метод 3:

Добавьте центральный репозиторий.
    * Во всех проектах добавьте следующую конфигурацию:
        * ```allprojects{
            repositories{
                mavenCentral()
            }
        }```.
    * Добавьте следующие зависимости в соответствии с требованиями:
        * ```implementation 'io.openharmony.tpc.thirdlib:okdownload-core:1.0.1'```,
        * ```implementation 'io.openharmony.tpc.thirdlib:okdownload-breakpoint-sqlite:1.0.1'```,
        * ```implementation 'io.openharmony.tpc.thirdlib:okdownload-connection-okhttp:1.0.1'```,
        * ```implementation 'io.openharmony.tpc.thirdlib:okdownload-filedownloader:1.0.1'```.

**Примечание:** при использовании okdownload-connection-okhttp.jar необходимо самостоятельно добавить зависимость от библиотеки okhttp. Конкретную версию можно найти в соответствующем модуле.

### Использование jar-пакетов

Не забудьте добавить сетевые разрешения в config.json вашего entry. Другие настройки инициализации см. в OkDownloadApp.java вашего entry: "reqPermissions": [ { "name": "ohos.permission.INTERNET" } ].

I. Запуск и отмена задачи

1. Запуск задачи

task = new DownloadTask.Builder(url, parentFile)
         .setFilename(filename)
         // минимальный интервал в миллисекундах для обратного вызова прогресса
         .setMinIntervalMillisCallbackProcess(30)
         // повторно загружать, даже если задача уже была завершена в прошлом
         .setPassIfAlreadyCompleted(false)
         .build();

task.enqueue(listener);

// отмена
task.cancel();

// выполнение задачи синхронно
task.execute(listener);

2. Запуск задач

// Этот метод оптимизирован специально для множества задач
DownloadTask.enqueue(tasks, listener);

// Отмена, этот метод также оптимизирован специально для множества задач
DownloadTask.cancel(tasks);

II. Построение очереди, запуск и остановка

DownloadContext.Builder builder = new DownloadContext.QueueSet()
        .setParentPathFile(parentFile)
        .setMinIntervalMillisCallbackProcess(150)
        .commit();
builder.bind(url1);
builder.bind(url2).addTag(key, value);
builder.bind(url3).setTag(tag);
builder.setListener(contextListener);

DownloadTask task = new DownloadTask.Builder(url4, parentFile)
        .setPriority(10).build();
builder.bindSetTask(task);

DownloadContext context = builder.build();

context.startOnParallel(listener);

// остановка
context.stop();

III. Получение состояния и информации

Обычно вы можете получить состояние и информацию через DownloadListener.

1. Получение статуса загрузки вне слушателя

Status status = StatusUtil.getStatus(task)

status = StatusUtil.getStatus(url, parentPath, null);
status = StatusUtil.getStatus(url, parentPath, filename);

boolean isCompleted = StatusUtil.isCompleted(task);
isCompleted = StatusUtil.isCompleted(url, parentPath, null);
isCompleted = StatusUtil.isCompleted(url, parentPath, filename);

Status completedOrUnknown = StatusUtil.isCompletedOrUnknown(task);

// Если вы установили тег, просто получите тег
task.getTag();
task.getTag(xxx);

2. Получение информации о точке останова вне слушателя

// Обратите внимание: информация будет удалена после завершения загрузки данных для обеспечения жизненного цикла данных
BreakpointInfo info = OkDownload.with().breakpointStore().get(id);

info = StatusUtil.getCurrentInfo(url, parentPath, null);
info = StatusUtil.getCurrentInfo(url, parentPath, filename);

// Начиная с версии okdownload v1.0.1-SNAPSHOT
// ссылка на информацию будет кэшироваться в ссылке на задачу, даже если задача завершила загрузку.
info = task.getInfo();

Комментарии ( 0 )

Вы можете оставить комментарий после Вход в систему

Введение

Описание недоступно Развернуть Свернуть
Apache-2.0
Отмена

Обновления

Пока нет обновлений

Участники

все

Недавние действия

Загрузить больше
Больше нет результатов для загрузки
1
https://api.gitlife.ru/oschina-mirror/HarmonyOS-tpc-okdownload.git
git@api.gitlife.ru:oschina-mirror/HarmonyOS-tpc-okdownload.git
oschina-mirror
HarmonyOS-tpc-okdownload
HarmonyOS-tpc-okdownload
master