Przy pierwszym uruchomieniu aplikacji chcę pobrać wszystkie pliki z serwera i chcę kontynuować pobieranie, nawet gdy użytkownik opuszcza aplikację (nie jest na pierwszym planie). Pliki, które muszę pobrać, to miniatury, zdjęcia w oryginalnym rozmiarze, inne pliki i wideo. Chcę je pobrać w kolejności, jak napisałem wcześniej.Pobierz wiele plików (zdjęć, filmów) w tle z priorytetową kolejnością
Używam Alamofire i ustawić menedżera sesji:
let backgroundManager: Alamofire.SessionManager = {
let bundleIdentifier = "com....."
return Alamofire.SessionManager(
configuration: URLSessionConfiguration.background(withIdentifier: bundleIdentifier + ".background")
)
}()
Następnie używam go tak:
self.backgroundManager.download(fileUrl, to: destination)
.downloadProgress { progress in
//print("Download Progress: \(progress.fractionCompleted)")
}
.response(completionHandler: result)
Jest w metodzie downloadPhoto i wzywam go:
for item in items {
self.downloadPhoto(item: item, isThumbnail: true, shouldReloadData: false, indexPath: nil)
self.downloadPhoto(item: item, isThumbnail: false, shouldReloadData: false, indexPath: nil)
}
Następnie mógłbym dodać wezwanie do pobrania pliku i pobrania wideo i inne. Ale wszystkie te prośby mają ten sam priorytet i chciałbym najpierw pobrać miniatury (ponieważ to właśnie widzi na początku), a następnie obrazy w pełnym rozmiarze, a potem wszystkie zdjęcia są pobierane, a następnie pliki i filmy. Ale wszystko musi być w kolejce, ponieważ jeśli użytkownik uruchomi aplikację, a następnie ustawi ją w tle i pozostawi na kilka godzin, wszystkie muszą zostać pobrane. czy to możliwe? I jak mogę to zrobić?
Patrzyłem na alamofire, że ma bibliotekę komponentów AlamofireImage, która ma priorytetowe pobieranie, ale obrazy są tylko częścią plików, które chcę nadać priorytet. Dziękujemy za pomoc.
tylko uwaga: jako użytkownik nie chciałbym, że aplikacja w tle wykorzystania wszystkich Mey transmisji danych telefon do pobrania wszystkie te rzeczy. Czy planowałeś poinformować użytkownika o tym pobraniu? lub tylko w trybie wifi? – muescha