Проект Fetch
(Рисунок / скриншот: Fetch)
allprojects {
repositories {
maven {
url 'https://s01.oss.sonatype.org/content/repositories/release/'
}
}
}
dependencies {
implementation 'com.gitee.chinasoft_ohos:Fetch:0.0.1-SNAPSHOT'
......
}
Проект можно запустить напрямую в SDK6 и DevEco Studio 2.2 Beta1. Если запуск не удался, удалите файлы .gradle, .idea, build, gradle и build.gradle и создайте новый проект с соответствующей версией. Скопируйте файлы из нового проекта в корневой каталог.
"name": "ohos.permission.WRITE_USER_STORAGE",
"name": "ohos.permission.READ_USER_STORAGE"
FetchConfiguration fetchConfiguration = new FetchConfiguration.Builder(this)
.setDownloadConcurrentLimit(3)
.build();
Fetch fetch = Fetch.Impl.getInstance(fetchConfiguration);
String url = "http:www.example.com/test.txt";
String file = "/downloads/test.txt";
final Request request = new Request(url, file);
request.setPriority(Priority.HIGH);
request.setNetworkType(NetworkType.ALL);
request.addHeader("clientKey", "SD78DF93_3947&MVNGHE1WONG");
fetch.enqueue(request, updatedRequest -> {
//Запрос успешно поставлен в очередь на загрузку.
}, error -> {
//При постановке запроса в очередь произошла ошибка.
});
FetchListener fetchListener = new FetchListener() {
@Override
public void onQueued(@NotNull Download download, boolean waitingOnNetwork) {
if (request.getId() == download.getId()) {
showDownloadInList(download);
}
}
@Override
public void onCompleted(@NotNull Download download) {
}
@Override
public void onError(@NotNull Download download) {
Error error = download.getError();
}
@Override
public void onProgress(@NotNull Download download, long etaInMilliSeconds, long downloadedBytesPerSecond) {
if (request.getId() == download.getId()) {
updateDownload(download, etaInMilliSeconds);
}
int progress = download.getProgress();
}
@Override
public void onPaused(@NotNull Download download) {
}
@Override
public void onResumed(@NotNull Download download) {
}
@Override
public void onCancelled(@NotNull Download download) {
}
@Override
public void onRemoved(@NotNull Download download) {
}
@Override
public void onDeleted(@NotNull Download download) {
}
};
fetch.addListener(fetchListener);
//Удалите слушателя после завершения работы.
fetch.removeListener(fetchListener);
Request request1 = new Request(url, file);
Request request2 = new Request(url2, file2);
fetch.pause(request1.getId());
...
fetch.resume(request2.getId());
//Запросите все загрузки
fetch.getDownloads(new Func<List<? extends Download>>() {
@Override
public void call(List<? extends Download> downloads) {
//Доступ ко всем загрузкам здесь
}
});
//Получите все загрузки со статусом
fetch.getDownloadsWithStatus(Status.DOWNLOADING, new Func<List<? extends Download>>() {
@Override
public void call(List<? extends Download> downloads) {
//Доступ к загрузкам, которые загружаются
}
});
//Вы также можете получить доступ к сгруппированным загрузкам
int groupId = 52687447745;
fetch.getDownloadsInGroup(groupId, new Func<List<? extends Download>>() {
@Override
public void call(List<? extends Download> downloads) {
//Доступ к сгруппированным загрузкам
}
});
//Выполните работу
fetch.close();
//Сделайте ещё что-нибудь
Скачать
Установите OkHttp Downloader для использования с Fetch. ``` FetchMigrator.deleteFetchV1Database(getApplicationContext()); setMigrationDidRun(true); //Setup and Run Fetch2 after the migration } catch (SQLException e) { e.printStackTrace(); }
}).start();
Если миграция не была выполнена, то:
//Setup and Run Fetch2 normally
#### 测试信息
CodeCheck и CloudTest прошли без исключений.
Вирусная безопасность проверена, всё в порядке.
Текущая версия demo функционально не отличается от исходного компонента.
#### Версия
0.0.1-SNAPSHOT
#### Авторские права и лицензии
Copyright (C) 2017 Tonyo Francis.
Licensed under the Apache License, Version 2.0 («Лицензия»); вы не можете использовать этот файл иначе, чем в соответствии с Лицензией. Вы можете получить копию Лицензии по адресу:
http://www.apache.org/licenses/LICENSE-2.0
Если это не требуется применимым законодательством или не согласовано в письменной форме, программное обеспечение, распространяемое по Лицензии, распространяется на условиях «КАК ЕСТЬ», БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ ИЛИ УСЛОВИЙ ЛЮБОГО РОДА, явных или подразумеваемых. См. Лицензию для конкретного языка, регулирующего разрешения и ограничения в рамках Лицензии.
Вы можете оставить комментарий после Вход в систему
Неприемлемый контент может быть отображен здесь и не будет показан на странице. Вы можете проверить и изменить его с помощью соответствующей функции редактирования.
Если вы подтверждаете, что содержание не содержит непристойной лексики/перенаправления на рекламу/насилия/вульгарной порнографии/нарушений/пиратства/ложного/незначительного или незаконного контента, связанного с национальными законами и предписаниями, вы можете нажать «Отправить» для подачи апелляции, и мы обработаем ее как можно скорее.
Комментарии ( 0 )