Alternativen zu Diensten für die Datensynchronisierung im Vordergrund

Es gibt oft bessere Alternativen anstelle eines dataSync-Dienstes im Vordergrund. Dieses Dokument hilft Ihnen, die beste Alternative für Ihren Anwendungsfall zu finden.

Anwendungsfälle für die Migration

In diesem Abschnitt werden einige häufige Situationen beschrieben, in denen Apps derzeit möglicherweise einen dataSync-Dienst im Vordergrund verwenden, sowie unsere empfohlenen Alternativen.

Daten über das Netzwerk übertragen
Wenn die Übertragung vom Nutzer initiiert wurde und Sie den Nutzer über den Fortschritt der Übertragung auf dem Laufenden halten möchten, verwenden Sie die vom Nutzer initiierten Datenübertragungs-APIs. Verwenden Sie andernfalls WorkManager.
Daten auf ein lokales Gerät oder von einem lokalen Gerät übertragen
Verwenden Sie eine bestimmte API, falls verfügbar, z. B. den Companion-Gerätemanager. Andernfalls verwenden Sie einen connectedDevice-Dienst im Vordergrund.
Medien transcodieren
Verwenden Sie den neuen mediaProcessing-Dienst im Vordergrund.
Eine kurze, wichtige Aufgabe erledigen
Verwende einen shortService-Dienst im Vordergrund.
Dateien verarbeiten (z. B. Übertragen von Daten auf oder von einer SD-Karte, Anpassen der Größe von Inhalten oder Verschlüsseln oder Entschlüsseln von Daten)
Wenn die Aufgabe weniger als drei Minuten dauert, verwenden Sie einen shortService-Dienst im Vordergrund. Verwenden Sie andernfalls WorkManager.

Vom Nutzer initiierte Data Transfer APIs verwenden

Wenn Ihre Anwendung Daten an einen Remoteserver übertragen muss, können Sie die neuen vom Nutzer initiierten Data Transfer APIs verwenden. Diese APIs sind geeignet, wenn Folgendes zutrifft:

  • Der Nutzer hat die Datenübertragung gestartet
  • Sie müssen den Nutzer über den Fortschritt der Datenübertragung informieren
  • Wenn die Übertragung durch das System unterbrochen wird, wirkt sich dies negativ auf die Nutzererfahrung aus.

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

In einer Medien-App können Nutzer beispielsweise Alben herunterladen, um sie lokal abzuspielen. Wenn ein Nutzer eine Playlist herunterladen und sofort abspielen möchte, können Sie die vom Nutzer initiierten Data Transfer APIs verwenden. Wenn der Nutzer hingegen möchte, dass die heruntergeladene Playlist regelmäßig im Hintergrund ohne Nutzerinitiierung aktualisiert wird, ist WorkManager die bessere Wahl.

Weitere Informationen finden Sie in der Dokumentation zum Migrieren von Diensten im Vordergrund zu vom Nutzer initiierten Datenübertragungsjobs.

WorkManager verwenden

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

Die folgenden Hinweise können bei der Migration von einem Dienst im Vordergrund zu WorkManager hilfreich sein:

  • Wenn Sie die Arbeit so schnell wie möglich ausführen müssen, können Sie eine beschleunigte Arbeitsanfrage planen. Diese Option ist besonders nützlich, wenn Sie die Arbeit als Reaktion auf eine Broadcasting-, Alarm- oder FCM-Nachricht mit hoher Priorität planen.
  • Wenn die Arbeit regelmäßig ausgeführt werden soll, können Sie regelmäßige Arbeiten einplanen. Bei einer Anfrage für regelmäßige Arbeit können Sie ungefähr angeben, wie oft die Arbeit ausgeführt wird. Eine bestimmte Zeit kann jedoch nicht garantiert werden. Auf diese Weise kann das System Arbeitsanfragen von verschiedenen Apps planen, um die Anforderungen des Geräts auszugleichen.
  • Sie sollten Arbeitseinschränkungen definieren, um die richtigen Umstände für die Ausführung Ihres Jobs anzugeben. Wenn Ihre App beispielsweise nicht dringende Ressourcen herunterladen muss, können Sie angeben, dass der Job ausgeführt werden soll, während das Gerät geladen wird und mit einem kostenlosen Netzwerk verbunden ist. WorkManager kann den Job dann zu einem Zeitpunkt ausführen, zu dem die Systemlast ausgeglichen wird.
  • WorkManager kann einen Auftrag jederzeit abbrechen und bei Bedarf wiederholen. Beispielsweise kann der Nutzer das Gerät ausschalten, während ein Job ausgeführt wird. Das System kann den Job dann wiederholen, wenn das Gerät wieder verfügbar ist. Entwickeln und testen Sie unbedingt Ihren Workflow, damit der Abbruch- und Wiederholungszyklus ordnungsgemäß funktioniert.

Spezifischen Typ für Dienst im Vordergrund verwenden

Wenn Sie nicht zu einer anderen Art der Hintergrundarbeit wechseln können, müssen Sie möglicherweise trotzdem einen Dienst im Vordergrund verwenden. In diesem Fall sollten Sie anstelle von dataSync einen geeigneten Diensttyp finden. Da Ihr Code bereits einen Dienst im Vordergrund verwendet, ist diese Migration einfach. Sie müssen nur den passenden Dienst im Vordergrund auswählen und dafür sorgen, dass Ihre Anwendung die Anforderungen dieses Dienstes erfüllt.

Wenn Sie einen Dienst im Vordergrund verwenden möchten, sollten Sie wie immer überlegen, ob es eine bessere alternative API gibt, die auf Ihren Anwendungsfall zugeschnitten ist.

Kurzen Dienst im Vordergrund verwenden

Wenn Ihre Anwendung eine kurze, wichtige Aufgabe ausführen muss, ist ein shortService-Dienst im Vordergrund möglicherweise die beste Option. In den folgenden Situationen könnte ein shortService-Dienst im Vordergrund geeignet sein:

  • Der Nutzer initiiert eine Aktion (z. B. das Synchronisieren von Daten mit dem Server) und Sie möchten dafür sorgen, dass der Vorgang abgeschlossen wird, auch wenn der Nutzer die App sofort in den Hintergrund sendet.
  • Speicherinterne Informationen werden im nichtflüchtigen Speicher gespeichert.
  • Daten verschlüsseln oder entschlüsseln

Vollständige Informationen finden Sie in der shortService-Dokumentation.

Vordergrunddienst für verbundene Geräte verwenden

Wenn Sie Daten auf ein anderes lokales Gerät übertragen müssen, sollten Sie einen connectedDevice-Dienst im Vordergrund verwenden. Hier sind einige gängige Situationen, in denen dies möglicherweise erforderlich ist:

  • Kommunikation mit Bluetooth-Zubehör wie Kopfhörern oder Smartwatches
  • Übertragen von Daten auf ein lokal verbundenes Gerät über eine USB-Verbindung, NFC oder eine lokale Internetverbindung

In diesen Situationen können Sie jedoch möglicherweise den Companion-Gerätemanager verwenden, um eine Verbindung zum Gerät herzustellen, anstatt einen Dienst im Vordergrund zu verwenden. Wie immer ist eine API für spezielle Zwecke für Ihren Anwendungsfall in der Regel besser geeignet als die Verwendung eines Diensts im Vordergrund.

Neuen Dienst für die Medienverarbeitung im Vordergrund verwenden

Wenn Sie Mediendaten verarbeiten müssen, können Sie den neuen Dienst mediaProcessing im Vordergrund verwenden. Dieser Diensttyp ist verfügbar, wenn deine App auf Android 15 oder höher ausgerichtet ist. Dieser Diensttyp ist beispielsweise geeignet, wenn in Ihrer App Medien für die Wiedergabe von einem Format in ein anderes transkodiert werden müssen. Weitere Informationen finden Sie in der Dokumentation zu Medienverarbeitungsdiensten im Vordergrund.

Zusätzliche Ressourcen

Weitere Informationen zu dieser Änderung an Diensten im Vordergrund finden Sie unter den folgenden zusätzlichen Ressourcen: