0

Ich habe eine Frage zum Download mehrerer Dateien mit Service in Android. Von Google-Suche sind alle empfohlenen Intent-Service, aber in meinem Fall Ich habe eine Liste der Datei in der Listenansicht, wenn der Benutzer eine Datei auswählen, die es mit Benachrichtigungsfortschritt herunterladen wird, wenn der Benutzer die Schaltfläche aus dem Activity Service drücken muss Hintergrund, Benutzer wählen Sie können mehrere Datei, in jeder Datei für den Fortschritt einzelner Benachrichtigungsleiste habenMehrere Datei Download mit Service von dynamischen URL gleichzeitig

Meine Frage ist

  1. Wenn ich Absicht Service wählen, wie kann ich Datei-URL dynamisch übergeben, wenn Benutzer die Datei auswählen, wenn ich rufe starten Service mit Absicht für jede URL wird es nicht parallel herunterladen

  2. Wenn ich wähle, Service und daran binden, aus dem Dokument nicht bindet Service für langen Lauf

  3. helfen, die Methode am besten zu erreichen ist und wie ich dynamische URL in Dienst übergeben zu und die Download-URL-Liste aktualisieren

Dank

Antwort

0

die Android Download Manager verwenden.

Der Download-Manager ist ein Systemdienst, der lang andauernde HTTP-Downloads verarbeitet. Clients können anfordern, dass ein URI in eine bestimmte Zieldatei heruntergeladen wird. Der Download-Manager führt den Download im Hintergrund aus, kümmert sich um HTTP-Interaktionen und versucht die Downloads nach Fehlern oder Verbindungskonnektivitätsänderungen und Systemneustarts erneut.

in Ihrer Tätigkeit, wo Sie Ihre Listenansicht definiert:

 listView.setOnItemClickListener(new AdapterView.OnItemClickListener() { 
     @Override 
     public void onItemClick(AdapterView<?> parent, View view, int position, 
           long id) { 

      String urlOfFileToDownload = (String) parent.getItemAtPosition(position); 
      // Object item = parent.getItemAtPosition(position); 

      DownloadManager downloadmanager = (DownloadManager) getSystemService(Context.DOWNLOAD_SERVICE); 
      Uri uri = Uri.parse(urlOfFileToDownload); 
      DownloadManager.Request request = new DownloadManager.Request(uri); 
      Long reference = downloadmanager.enqueue(request); 
     } 
    }); 
+0

Download-Manager Angebotsmitteilung Fortschrittsbalken? Ich brauche laufende Benachrichtigung, ist es Unterstützung? Wird es gleichzeitig unterstützt? – Manikandan

+0

Ja, unterstützt das gleichzeitige Herunterladen von Dateien und der Download-Fortschritt wird in der Benachrichtigungsleiste angezeigt. –

+0

Soll ich eine benutzerdefinierte Benachrichtigungsleiste verwenden, um die Aktion anzuhalten und abzubrechen – Manikandan