Une application mobile doit couramment effectuer des actions en tâche de fond : suivi de position, action à la détection d'une balise beacon, vérification d'emails, récupération de données par consommation de webservices...


Pour cela le WLangage propose deux méthodes : les tâches en arrière-plan et les threads persistants.


La différence majeure entre ces deux solutions, c'est le besoin ou non d'avoir l'application en cours d'exécution.


Lorsqu'une application va lancer une procédure dans un thread persistant, il est exécuté dans le contexte d'un service dit "foreground" de Android. Ce contexte particulier permet d'indiquer au système que l'application :

  • est active même lorsqu'elle est en arrière-plan,
  • ne doit pas être arrêtée.


A l'inverse lorsque l'application ajoute une tâche en arrière-plan avec la fonction TâcheEnArrièrePlanAjoute, son exécution sera à la charge du système et indépendant du cycle de vie de l'application. L'application peut donc être arrêtée, le système peut même être redémarré, la tâche en arrière-plan sera toujours exécutée. Entre les appels, il n'y a aucune consommation de batterie ou de CPU. Si l'application est arrêtée au moment d'exécuter la tâche, elle est relancée et ses traitements d'initialisation sont exécutés afin de permettre à la tâche d'avoir accès par exemple aux variables globales.


Les tâches en arrière-plan doivent donc être utilisées en cas de traitements longs et récurrents, et qui n'ont pas besoin de l'application. Ils pourront la redémarrer si nécessaire, par exemple pour notifier de l'arrivée d'un email, d'une données obtenues d'un webservice...


Les threads persistants seront utilisés pour effectuer des traitements également longs mais ponctuels avec l'application lancée. Par exemple, le suivi précis de la position GPS de l'appareil pendant un temps donné. Typiquement, une application de suivi d'une activité sportive telle que WM Sport inclus avec WINDEV Mobile utilise un thread persistant.

 

Rappel spécifique pour Android 10 et ultérieur : l'ouverture d'une fenêtre depuis une action faite en arrière-plan n'est plus autorisée : Exécution en arrière-plan, notifications push, beacon, suivi de position, les changements à connaître pour le déploiement d'applications sous Android 10...

 

< Retour

Publier un commentaire : 
Votre adresse email ne sera pas publiée


© 2020 PC SOFT. Tous droits réservés. Réalisé  avec WEBDEV