Używam Android DownloadManger usługa systemowa do pobierania niektórych plików w następujący sposóbDownloadManager.ACTION_DOWNLOAD_COMPLETE odbiornik transmisji otrzymaniu sam identyfikator pobierania więcej niż raz z różnymi stanami pobrania w Android
dwnId = mgr.enqueue(new DownloadManager.Request(serveruri)
.setAllowedNetworkTypes(DownloadManager.Request.NETWORK_WIFI |
DownloadManager.Request.NETWORK_MOBILE)
.setAllowedOverRoaming(false)
.setTitle(getAlbumName())
.setDescription(getTrackName())
.setDestinationUri(deviceUri)
.setShowRunningNotification(true));
gdzie mgr
to pobrać instancję Manager, dwnId
jest zwracany unikalny identyfikator. Ja również rejestracji na ACTION_DOWNLOAD_COMPLETE
registerReceiver(onDownloadComplete, new IntentFilter(DownloadManager.ACTION_DOWNLOAD_COMPLETE));
aw onDownloadComplete BroadcastReceiver za onReceive() Metoda Dostaję pobierania Id jak
Long dwnId = intent.getLongExtra(DownloadManager.EXTRA_DOWNLOAD_ID, 0);
Po tym ja zapytań Menedżer pobierania statusu Pobierz
Cursor c = downloadManager.query(new DownloadManager.Query().setFilterById(dwnId)); c.getInt(c.getColumnIndex(DownloadManager.COLUMN_STATUS));
dla stałych DownloadManager.STATUS_ *.
Problem polega na tym, że otrzymuję dwa razy ten sam komunikat downId (oznacza to, że metoda onReceive jest wywoływana dwa razy), jeden raz ze stanem DownloadManager.STATUS_SUCCESSFUL i raz ze stanem DownloadManager.STATUS_FAILED dla tego samego dwnId. Wydaje mi się prośbę o pobranie około 10 plików jednocześnie, ale w menedżerze pobierania urządzeń wyświetla się liczba pobrań, ponieważ około 12 lub 13 w pasku powiadomień oznacza, że górny lewy oznacza. Wydaje mi się, że Menedżer pobierania ma problem z pobieraniem plików i wznawianiem lub ponownym uruchamianiem, aby ponownie pobrać ten sam plik. To dlatego istnieje różnica między liczbą plików, które zażądałem do pobrania, a rzeczywistą liczbą w kolejce pobierania. Z tego powodu tylko dwa razy otrzymuję tę samą akcję doładowania DownloadId. Jeśli to prawda, jak ją ograniczyć. Czy nie mam racji, co może być powodem zliczania różnicy między tym, co żądałem, a rzeczywistym pobieraniem? Dlaczego odbiornik transmisji otrzymuje ten sam identyfikator pobierania dwa razy. Czy ktokolwiek może mi powiedzieć?
z góry dzięki ...
Thx dla u r wysiłki – vrs
Czy przeszkadza dzielenie kodu? –
@GaurawYadav Pomyślał, że: p, ponieważ nie podzielił się kodem :) –