DOCUMENTATION EN LIGNE
DE WINDEVWEBDEV ET WINDEV MOBILE

Aide / WLangage / Fonctions WLangage / Fonctions standard / Fonctions de gestion des traitements / Threads, sémaphores, signaux et mutex
WINDEV
WindowsLinuxUniversal Windows 10 AppJavaEtats et RequêtesCode Utilisateur (MCU)
WEBDEV
WindowsLinuxPHPWEBDEV - Code Navigateur
WINDEV Mobile
AndroidWidget AndroidiPhone/iPadWidget IOSApple WatchMac CatalystUniversal Windows 10 App
Autres
Procédures stockées
Rend un thread persistant.
L'application n'est pas arrêtée tant qu'au moins un thread persistant est en cours d'exécution (même si toutes ses fenêtres ont été fermées).
L'utilisation d'un thread persistant permet par exemple :
  • de continuer la lecture d'un morceau de musique même si la fenêtre de lecture est fermée.
  • de transmettre des coordonnées GPS de façon permanente.
Exemple
// Lancement du thread déclenchant la lecture d'un morceau de musique
ThreadExécute("MonThread", threadContexteGlobal, ProcJoueMusique)
 
// Crée la notification à afficher pendant la lecture du morceau de musique
Notif est une Notification
Notif.Titre = "Lecture en cours ..."
Notif.ActionClic = ProcStopMusique
 
// Rend le thread persistant pour empêcher la fermeture de l'application
// tant que le thread n'est pas terminé
ThreadPersistant("MonThread", Notif)
Syntaxe
<Résultat> = ThreadPersistant(<Nom du thread> , <Notification à afficher>)
<Résultat> : Booléen
  • Vrai si le thread a été rendu persistant,
  • Faux en cas d'erreur. Pour connaître le libellé de l'erreur, utilisez la fonction ErreurInfo avec la constante errMessage.
<Nom du thread> : Chaîne de caractères
Nom du thread qui doit devenir persistant. Ce nom est donné lors de l'exécution du thread (fonction ThreadExécute). Ce thread doit exister et utiliser le contexte global de l'application.
<Notification à afficher> : Variable de type Notification
Nom de la variable de type Notification correspondant à la notification à afficher pendant l'exécution du thread persistant.
Cette notification ne doit pas être déjà affichée. Si un thread persistant est en cours d'exécution au moment de l'appel de la fonction ThreadPersistant, la notification associée à ce thread sera remplacée par la notification spécifiée. Lorsque le thread aura terminé son exécution, la notification sera automatiquement masquée si plus aucun thread persistant n'est en cours.
Remarques
  • L'affichage d'une notification pendant l'exécution d'un thread persistant est obligatoire. Ainsi, l'utilisateur est informé que l'application qu'il a lancée est toujours en cours d'exécution même si plus aucune fenêtre n'est ouverte. Il peut reprendre la main sur cette application lors du clic sur la notification.
    Il est également possible de relancer l'application lors du clic sur la notification : il suffit de renseigner la propriété ActiveApplication dans la variable de type Notification.
  • Conseil : Ne pas ouvrir de fenêtre depuis un thread persistant. Les fenêtres peuvent être ouvertes par exemple depuis la procédure appelée par la notification.
  • L'optimisation de l'utilisation de la batterie intégrée à partir de la version 10 de Android peut interrompre un thread rendu persistant par la fonction ThreadPersistant. Dans ce cas, la fonction SysOptimBatterieArrièrePlan permet d'autoriser l'application à utiliser la batterie et donc permet également de conserver le thread persistant.
    Ce thème est abordé dans le billet suivant du blog du Support Technique :
    https://blogs.pcsoft.fr/fr/thread-persistant-tache-arriere-plan-solution-retenir-action-fond-application-android/281474976710897/read.awp.
Liste des exemples associés :
Android Notifications Persistantes Android (WINDEV Mobile) : Android Notifications Persistantes
[ + ] Cet exemple permet de créer des notifications persistantes qui apparaissent même si l'application n'est plus utilisée.
Un thread persistant lancé au démarrage de l'appareil permet d'envoyer les notifications.
Composante : wd290android.jar
Version minimum requise
  • Version 18
Commentaires
Cliquez sur [Ajouter] pour publier un commentaire

Dernière modification : 21/06/2023

Signaler une erreur ou faire une suggestion | Aide en ligne locale