2016-05-23 4 views
0

Ich bin ziemlich neu mit den Services API und allgemein mit Android-Netzwerken.Laden Sie mehrere Dateien mit mehreren Instanzen des gleichen Dienstes

Ich versuche, mehr als eine große Dateien zur gleichen Zeit (fast) hochzuladen. Zum Beispiel klickt der Benutzer nacheinander auf zwei Schaltflächen und ich starte einen neuen Dienst (gleicher Dienst, verschiedene Instanzen).

Meistens, wenn nicht alle, gibt es einen oder mehrere Fehler. Dateien werden nicht korrekt hochgeladen. Etwas anderes, das ich auch bemerkt habe, ist, dass, wenn eine Dienstinstanz mit dem Hochladen endet und aufhört, andere Dienste ebenfalls gestoppt werden.

Bin ich richtig mit meinen Beobachtungen über Service Klasse? Ist es nicht möglich, mehr als eine Instanz desselben Service gleichzeitig zu haben?

Wenn ja, wie werde ich dann gleichzeitig mehr als eine Datei hochladen?

Antwort

1

Sie verstehen die Service-Klasse nicht gut. Sie sollten nur eine Instanz dieses Service haben. Wie auch immer, Sie könnten eine Warteschlange oder eine Datenstruktur in diesem Dienst haben, um die Uploads zu verarbeiten. Sie können mehrere Dateien gleichzeitig hochladen, indem Sie verschiedene Threads zum Hochladen von Aufgaben verwenden. hoffe es hilft

+0

Vielen Dank. Es ist jetzt viel klarer. Noch eine Frage: wenn ich verschiedene Threads zum Hochladen habe, wie werde ich wissen wann ich stopSelf() aufrufen soll? – Mes

+1

Sie können immer überprüfen, ob ein Upload ausgeführt wird, entweder mithilfe eines Mutex oder einer anderen Synchronisierungsmethode! Sie stoppen den Dienst, wenn kein Thread zum Hochladen ausgeführt wird. Oder Sie können den Dienst einfach laufen lassen, vorausgesetzt, dass nichts läuft: P –