OkDownload
Надёжный, гибкий, быстрый и мощный механизм загрузки.
Чтобы интегрировать 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.
Добавьте центральный репозиторий.
* Во всех проектах добавьте следующую конфигурацию:
* ```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" } ]
.
task = new DownloadTask.Builder(url, parentFile)
.setFilename(filename)
// минимальный интервал в миллисекундах для обратного вызова прогресса
.setMinIntervalMillisCallbackProcess(30)
// повторно загружать, даже если задача уже была завершена в прошлом
.setPassIfAlreadyCompleted(false)
.build();
task.enqueue(listener);
// отмена
task.cancel();
// выполнение задачи синхронно
task.execute(listener);
// Этот метод оптимизирован специально для множества задач
DownloadTask.enqueue(tasks, listener);
// Отмена, этот метод также оптимизирован специально для множества задач
DownloadTask.cancel(tasks);
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();
Обычно вы можете получить состояние и информацию через DownloadListener.
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);
// Обратите внимание: информация будет удалена после завершения загрузки данных для обеспечения жизненного цикла данных
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 )