La version 23 de WINDEV contient une nouveauté très intéressante : La possibilité d'exécuter des procédures en tâche de fond lorsque l'application est en arrière-plan et même lorsqu'elle est arrêtée.

 

Cette fonctionnalité sous iOS est soumise toutefois à un certain nombre de contraintes dues au fonctionnement du système iOS. La fonction TâcheEnArrièrePlanAjoute ajoute à la liste des taches « background » du système la procédure à exécuter. C'est ensuite le système qui décide du moment où la procédure sera réelement exécutée. La seule option réglable est la durée minimum en deux exécutions. C'est-à-dire que la procédure ne sera jamais appelée dans un temps inférieur à celui indiqué. Par contre, le temps entre deux appels ou le temps passé avant le premier appel pourra être supérieur et même très largement supérieur au temps indiqué.

Voici quelques informations sur ces contraintes :

- Lors d'un test via une liaison XCode, l'appel à la procédure sera réalisé uniquement sur demande spécifique via XCode (http://blogs.pcsoft.fr/fr/simuler-execution-tache-fond-tacheenarriereplanajoute-application-ios-test-xcode/281474976710713/read.awp)

- Pour que le système considère que votre application peut exécuter des tâches en « background », il faut que l'application réalise des requêtes réseau (appels WebService, requête http, accès base HFSQL, GPS, Email, etc…). iOS vérifie que l'application exploite des données provenant du réseau.


- Il faut bien vérifier que l'application est capable d'exécuter des tâches en arrière-plan. C'est dans l'application « Paramètres de l'appareil…<Votre application> » : Actualiser en arrière-plan doit être coché.


- Lorsque l'application est terminée spécifiquement par un double appui sur le bouton Home et un swipe, les chances que votre procédure soit exécutée diminuent fortement.

 

- La procédure ne sera plus appelée si l'appareil passe en mode économie d'énergie.

- Le délai entre deux exécutions de la procédure sera réduit si l'appareil est branché et connecté à un réseau WIFI.


- La fréquence à laquelle l'application est activée par l'utilisateur va également influer sur la fréquence d'appel de la procédure.

- Plus l'exécution de la requête qui récupère les données est rapide, plus le temps entre deux exécutions est réduit.

De manière générale, plus le temps d'exécution de votre procédure est long, plus l'appel sera espacé dans le temps. Le système a tendance à prioriser les procédures les moins consommatrices en cpu.

< Retour

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