para manager internet idm full descargas descargar administrador android download download-manager android-download-manager

idm - internet download manager android apk



Controla el orden de descarga de Download Manager en android (1)

Con respecto a esta respuesta, parece que puede cancelar la descarga y luego descargar el resto del archivo. Por ejemplo:

Registre BrodcastReciever para notificarle cuando se complete C:

BroadcastReceiver onComplete = new BroadcastReceiver() { @Override public void onReceive(Context context, Intent intent) { //check if it is B that is complete //cancel C // download E //check if it is E that is complete // Open connection to URL. HttpURLConnection connection = (HttpURLConnection) url.openConnection(); // Specify what portion of file to download. connection.setRequestProperty("Range", "bytes=" + downloaded + "-"); // here "downloaded" is the data length already previously downloaded. // Connect to server. connection.connect(); } }; registerReceiver(onComplete, new IntentFilter(DownloadManager.ACTION_DOWNLOAD_COMPLETE)); //download A //download B //download C

tener un caso de uso como el siguiente:

Hay varios archivos para descargar, por ejemplo, ABCDEF

Cuando se inicia la descarga, digamos que el AB ha finalizado y que C está descargando, me gustaría interrumpir la descarga de C y comenzar la descarga de E

Luego, después de que E haya terminado (si no hay otra interrupción), continúe con CD F.

Hasta el momento de mi investigación solo hay un método de cancelar

downloadManager.remove (downloadReference); ¿Cómo lograr esto a través del gestor de descargas o hay otro enfoque? Gracias

private long startDownload(String url) { Uri DownloadUri = Uri.parse(url); String fileName = StorageUtils.getFileNameFromUrl(url); String destination = null; downloadManager = (DownloadManager) getSystemService(DOWNLOAD_SERVICE); DownloadManager.Request request = new DownloadManager.Request( DownloadUri); request.setAllowedNetworkTypes(DownloadManager.Request.NETWORK_WIFI | DownloadManager.Request.NETWORK_MOBILE); request.setAllowedOverRoaming(false); request.setTitle(fileName); request.setDescription("com.example.services"); if (StorageUtils.isSDCardPresent() && StorageUtils.isSdCardWrittenable() && StorageUtils.checkAvailableStorage()) { destination = StorageUtils.SDCARD_ROOT; } try { StorageUtils.mkdir(); } catch (IOException e) { e.printStackTrace(); } request.setDestinationInExternalPublicDir(destination, fileName); downloadReference = downloadManager.enqueue(request); Log.d("Downloader","Start download manager: " + destination + fileName); return downloadReference; }