Optionen für Hintergrundaufgaben zur Datenübertragung

Viele Apps müssen Daten im Hintergrund übertragen. Diese Seite hilft Ihnen dabei, den richtigen Ansatz für Ihre Anforderungen zu finden.

Anwendungsfälle für die Migration

In diesem Abschnitt werden einige häufige Situationen beschrieben, in denen Apps übertragen werden müssen. Daten vom oder zum Gerät und hilft Ihnen, das richtige Tool für Ihre Situation.

Daten über das Netzwerk übertragen

Wenn die Übertragung vom Nutzer initiiert wurde und Sie den Nutzer behalten müssen informiert über den Fortschritt der Übertragung, verwenden Sie die vom Nutzer initiierte Datenübertragung APIs Andernfalls verwenden Sie WorkManager oder einen entsprechenden Typ von Diensten im Vordergrund.

Wenn Sie einen Download planen müssen, können Sie auch DownloadManager. DownloadManager verwaltet und sorgt dafür, dass Downloads nach Fehlern, Geräteneustarts, und Verbindungsänderungen. DownloadManager bietet jedoch nicht alle Debugging- und Testfunktionen, die in WorkManager verfügbar sind, und JobScheduler

Daten auf ein oder von einem lokalen Gerät übertragen

Verwenden Sie eine bestimmte API, falls verfügbar, z. B. das Companion-Gerät. Manager); Andernfalls verwenden Sie connectedDevice im Vordergrund.

Eine kurze, wichtige Aufgabe erledigen

Verwenden Sie einen shortService-Dienst im Vordergrund.

Verarbeiten von Dateien (z. B. Übertragen von Daten auf oder von einer SD-Karte, Ändern der Größe von Inhalten oder Verschlüsseln oder Entschlüsseln von Daten)

Wenn die Aufgabe in weniger als drei Minuten abgeschlossen werden kann, verwenden Sie einen shortService Dienst im Vordergrund. Andernfalls verwenden Sie WorkManager.

Vom Nutzer initiierte Datenübertragungs-APIs verwenden

Wenn Ihre App Daten an einen Remote-Server übertragen muss, können Sie den neuen vom Nutzer initiierten Datenübertragungs-APIs. Diese APIs sind geeignet, wenn die trifft Folgendes zu:

  • Der Nutzer hat mit der Datenübertragung begonnen.
  • Sie müssen den Nutzer über den Fortschritt der Datenübertragung informieren.
  • Wenn die Übertragung vom System unterbrochen wird, beeinträchtigt dies die Nutzerfreundlichkeit.

Ist eine dieser Bedingungen nicht erfüllt, sollten Sie WorkManager verwenden. .

Mit einer Medien-App könnten Nutzer beispielsweise Alben herunterladen, um sie lokal abzuspielen. Wenn ein eine Playlist herunterladen und sofort abspielen möchte, können Sie die vom Nutzer initiierten Datenübertragungs-APIs. Wenn die Nutzenden jedoch eine heruntergeladene Playlist, die regelmäßig im Hintergrund aktualisiert wird. wäre WorkManager die bessere Wahl.

Weitere Informationen finden Sie in der Dokumentation zur Migration von Diensten im Vordergrund zu vom Nutzer initiierte Datenübertragungsjobs.

WorkManager verwenden

In den meisten Fällen ist WorkManager die beste Option, wenn Sie Aufgaben planen müssen. Sie müssen die Aufgaben so gestalten, dass sie unterbrochen oder aufgeschoben werden können. durch das System. Weitere Informationen finden Sie in der WorkManager-Dokumentation.

Hier sind einige Hinweise, die hilfreich sein können, wenn Sie von einem Vordergrund -Dienst für WorkManager:

  • Wenn Sie die Arbeit so schnell wie möglich ausführen müssen, können Sie einen beschleunigte Bearbeitung. Diese Option ist besonders nützlich, wenn Sie als Reaktion auf eine Nachricht an alle, einen exakten Alarm oder FCM-Nachricht mit hoher Priorität.
  • Wenn die Arbeit regelmäßig ausgeführt werden muss, können Sie regelmäßige Arbeiten planen. (geschäftlich). Bei einer regelmäßigen Arbeitsanfrage können Sie ungefähr angeben, wie oft ausgeführt werden, garantiert aber keine bestimmte Zeit. Dadurch kann die System zur Planung von Arbeitsanfragen aus verschiedenen Apps, um den Bedarf auszugleichen auf dem Gerät.
  • Sie sollten Arbeitsbeschränkungen definieren, um die richtigen für die Ausführung Ihres Jobs. Wenn Ihre App zum Beispiel nicht dringenden Ressourcen enthält, können Sie angeben, dass der Job während der Gerät wird aufgeladen und ist mit einem nicht getakteten Netzwerk verbunden. WorkManager kann und den Job dann zu einem Zeitpunkt ausführen, bei dem die Systemlast ausgeglichen wird.
  • WorkManager kann Jobs bei Bedarf abbrechen und noch einmal versuchen. Beispiel: Der Nutzer kann das Gerät ausschalten, während ein Job ausgeführt wird. kann das System Wiederholen Sie den Job, sobald das Gerät wieder verfügbar ist. Achten Sie darauf, und testen Sie Ihren Workflow, um sicherzustellen, dass der Zyklus zum Abbrechen und Wiederholen funktioniert. nicht ordnungsgemäß funktioniert.

Spezifischeren Typ des Diensts im Vordergrund verwenden

Wenn Sie keine andere Möglichkeit haben, im Hintergrund zu arbeiten, einen Dienst im Vordergrund verwenden. In diesem Fall sollten Sie eine geeignete Diensttyp, der anstelle von dataSync verwendet werden soll. Da in Ihrem Code bereits ein ist diese Migration unkompliziert: müssen Sie nur den richtigen Typ und achten Sie darauf, dass Ihre App diese Anforderungen des Dienstes.

Wenn Sie einen Dienst im Vordergrund verwenden möchten, sollten Sie wie immer Überlegen Sie, ob es eine bessere alternative API gibt, die auf Ihre Nutzung zugeschnitten ist Fall.

Kurzen Dienst im Vordergrund verwenden

Wenn deine App eine kurze, wichtige Aufgabe ausführen muss, wird im Vordergrund ein shortService ist wahrscheinlich die beste Option. Hier sind einige Situationen, in denen shortService Dienst im Vordergrund geeignet ist:

  • Der Nutzer initiiert eine Aktion, z. B. das Synchronisieren von Daten mit dem Server, und Sie möchten damit der Vorgang auch dann abgeschlossen wird, wenn der Nutzer in den Hintergrund.
  • Speichern von speicherinternen Informationen im nichtflüchtigen Speicher.
  • Informationen verschlüsseln oder entschlüsseln

Umfassende Informationen finden Sie in der Dokumentation zu shortService.

Vordergrunddienst eines verbundenen Geräts verwenden

Wenn Sie Daten auf ein anderes lokales Gerät übertragen möchten, sollten Sie ein connectedDevice-Dienst im Vordergrund. Im Folgenden sind einige häufige Situationen aufgeführt. wo Sie dies möglicherweise tun müssen:

  • Kommunikation mit Bluetooth-Zubehör wie Kopfhörern oder einer Smartwatch
  • Die Übertragung von Daten auf ein lokal verbundenes Gerät per USB-Verbindung, oder eine lokale Internetverbindung

In diesen Fällen können Sie jedoch möglicherweise das Companion-Gerät verwenden. , um sich mit dem Gerät zu verbinden, anstatt einen Dienst im Vordergrund zu verwenden. Wenn für Ihren Anwendungsfall eine spezielle API verfügbar ist, ist diese ist meist eine bessere Wahl, als einen Dienst im Vordergrund zu verwenden.

Weitere Informationen

Weitere Informationen zu dieser Änderung an Diensten im Vordergrund finden Sie hier: Weitere Informationen: