Alternatives aux services de premier plan de synchronisation de données

Il existe souvent de meilleures alternatives à la place d'un service de premier plan dataSync. Ce document vous aide à trouver la meilleure solution pour votre cas d'utilisation.

Cas d'utilisation pour la migration

Cette section décrit certaines situations courantes dans lesquelles les applications peuvent actuellement utiliser un service de premier plan dataSync, ainsi que les alternatives recommandées.

Transférer des données sur le réseau
Si le transfert a été lancé par l'utilisateur et que vous devez l'informer de la progression du transfert, utilisez les API de transfert de données déclenchées par l'utilisateur. Sinon, utilisez WorkManager.
Transférer des données vers ou depuis un appareil local
Utilisez une API spécifique si disponible (par exemple, le gestionnaire d'appareils associés). Sinon, utilisez un service de premier plan connectedDevice.
Transcodage de contenus multimédias
Utiliser le nouveau type de service de premier plan mediaProcessing
Accomplir une tâche courte et critique
Utiliser un service de premier plan shortService
Traitement de fichiers (par exemple, transfert de données vers ou depuis une carte SD, redimensionnement de contenu, ou chiffrement ou déchiffrement de données)
Si la tâche peut être terminée en moins de trois minutes, utilisez un service de premier plan shortService. Sinon, utilisez WorkManager.

Utiliser les API de transfert de données déclenchées par l'utilisateur

Si votre application doit transférer des données vers un serveur distant, vous pouvez utiliser les nouvelles API de transfert de données déclenchées par l'utilisateur. Ces API sont appropriées si les conditions suivantes sont remplies:

  • L'utilisateur a commencé le transfert de données.
  • Vous devez informer l'utilisateur de la progression du transfert de données
  • Si le système interrompt le transfert, cela nuit à l'expérience utilisateur.

Si l'une de ces conditions n'est pas remplie, utilisez WorkManager à la place.

Par exemple, une application multimédia peut permettre aux utilisateurs de télécharger des albums à lire en local. Si un utilisateur souhaite télécharger une playlist et la lire immédiatement, vous pouvez utiliser les API de transfert de données déclenchées par l'utilisateur. En revanche, si l'utilisateur souhaite que la playlist téléchargée se mette à jour régulièrement en arrière-plan sans intervention de l'utilisateur, WorkManager constitue un meilleur choix.

Pour en savoir plus, consultez la documentation sur la migration des services de premier plan vers des tâches de transfert de données déclenchées par l'utilisateur.

Utiliser WorkManager

Dans la plupart des cas, WorkManager est la meilleure option pour planifier une tâche. Vous devez concevoir les tâches de manière à ce qu'elles puissent être interrompues ou différées par le système. Pour en savoir plus, consultez la documentation de WorkManager.

Voici quelques remarques qui peuvent vous être utiles lors de la migration d'un service de premier plan vers WorkManager:

  • Si vous devez exécuter la tâche dès que possible, vous pouvez planifier une requête de tâche prioritaire. Cette option est particulièrement utile si vous planifiez la tâche en réponse à un message FCM de diffusion, d'alarme exacte ou à priorité élevée.
  • Si vous souhaitez qu'une tâche soit exécutée régulièrement, vous pouvez planifier une tâche périodique. Une requête de tâche périodique vous permet de spécifier approximativement la fréquence d'exécution des tâches, mais ne garantit pas une heure spécifique. Cela permet au système de planifier les requêtes de travail de différentes applications afin d'équilibrer les tâches sur l'appareil.
  • Vous devez définir des contraintes de travail afin de spécifier les circonstances appropriées dans l'exécution de votre tâche. Par exemple, si votre application doit télécharger des ressources non urgentes, vous pouvez spécifier que la tâche doit s'exécuter pendant que l'appareil est en charge et connecté à un réseau non facturé à l'usage. WorkManager peut ensuite exécuter votre tâche à un moment qui équilibre la charge sur le système.
  • WorkManager peut annuler et relancer un job si nécessaire. Par exemple, l'utilisateur peut éteindre l'appareil pendant qu'une tâche est en cours d'exécution. Le système peut ensuite relancer la tâche lorsque l'appareil est à nouveau disponible. Veillez à concevoir et tester votre workflow pour vous assurer que le cycle d'annulation et de nouvelle tentative fonctionne correctement.

Utiliser un type de service de premier plan plus spécifique

Si vous ne pouvez pas passer à un autre moyen d'effectuer des tâches en arrière-plan, vous devrez peut-être tout de même utiliser un service de premier plan. Dans ce cas, vous devez trouver un type de service approprié à utiliser à la place de dataSync. Comme votre code utilise déjà un service de premier plan, cette migration est simple. Il vous suffit de choisir le type de service de premier plan approprié et de vous assurer que votre application répond aux exigences de ce service.

Comme toujours, lorsque vous envisagez d'utiliser un service de premier plan, vous devez déterminer s'il existe une API alternative plus adaptée à votre cas d'utilisation.

Utiliser un service de premier plan de service court

Si votre application doit effectuer une tâche courte et critique, un service de premier plan shortService peut être la meilleure option. Voici quelques situations dans lesquelles un service de premier plan shortService peut être approprié:

  • L'utilisateur lance une action (comme la synchronisation de données avec le serveur). Vous souhaitez vous assurer que l'opération se termine même si l'utilisateur envoie immédiatement l'application en arrière-plan.
  • Enregistrer des informations en mémoire sur un espace de stockage persistant
  • Chiffrer ou déchiffrer des informations

Pour en savoir plus, consultez la documentation shortService.

Utiliser un service de premier plan pour un appareil connecté

Si vous devez transférer des données vers un autre appareil local, vous pouvez utiliser un service de premier plan connectedDevice. Voici quelques situations courantes dans lesquelles cette opération peut s'avérer nécessaire:

  • lorsque vous communiquez avec un accessoire Bluetooth, comme un casque ou une montre connectée ;
  • Transférer des données vers un appareil connecté localement, via une connexion USB, NFC ou une connexion Internet locale

Toutefois, dans ces situations, vous pouvez utiliser le gestionnaire d'appareils associés pour vous connecter à l'appareil au lieu d'utiliser un service de premier plan. Comme toujours, si une API spécifique est disponible pour votre cas d'utilisation, c'est généralement un meilleur choix qu'avec un service de premier plan.

Utiliser le nouveau service de premier plan de traitement multimédia

Si vous devez traiter des données multimédias, vous pouvez utiliser le nouveau service de premier plan mediaProcessing. Ce type de service est disponible si votre application cible Android 15 ou une version ultérieure. Par exemple, ce type de service est approprié si votre application doit transcoder des contenus multimédias d'un format à un autre pour la lecture. Pour en savoir plus, consultez la documentation sur les services de premier plan pour le traitement multimédia.

Ressources supplémentaires

Pour en savoir plus sur cette modification apportée aux services de premier plan, consultez les ressources supplémentaires suivantes: