PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV Mobile 2024 → [W23] Réduction consommation batterie
[W23] Réduction consommation batterie
Débuté par Ian, 23 oct. 2018 11:08 - 7 réponses
Membre enregistré
106 messages
Popularité : +3 (3 votes)
Posté le 23 octobre 2018 - 11:08
Bonjour,

l'application que je développe actuellement communique avec un webservice toutes les minutes (pour les besoins des sociétés qui l'utilisent).
Dans cet ordre :

1) Tous les minutes, un thread secondaire est lancé (en fonction d' un TimerSys) pour envoyer des données vers les webservices. il est conditionné avec HNbEnr sur plusieurs fichiers d’analyse et un booléen, via des tableaux de structures que je sérialise sur le téléphone et désérialse sur le webservice

2) Juste après, un autre thread secondaire est lancé (en fonction d' un autre TimerSys) pour récupérer les données s'il y en a via des tableaux de structures que je sérialise sur le webservice et désérialse sur le téléphones. Il est conditionné par une dateheure


Pour m'assurer que les threads se lancent bien, j'utilise SysMiseEnVeille(sysBatterie,sysVeilleInactive) parce que si le téléphone passe en veille, sur certains téléphones, les timersys se coupe.

L'application utilise aussi le GPS que sous conditions.

Certains utilisateurs se plaignent de la consommation de batterie. Savez-vous comment réduire la consommation de la batterie tout en respectant ma description précédente svp ?

Merci d'avance pour vos retours

--
- ian -
Membre enregistré
795 messages
Popularité : +40 (42 votes)
Posté le 23 octobre 2018 - 12:15
Il est incompatible d'exécuter chaque minute un processus et d'empêcher l'appareil d'entrer dans un "sommeil profond" avec une longue durée de vie de la batterie. En fait, Android dans ses dernières versions pour promouvoir les économies de batterie ne vous permet pas de déclencher vos alertes au moment exact où elles sont prévues, il y a toujours un temps d'ajustement. Dans WM23, il dispose des fonctions TâcheEnArrièrePlan**** qui vous permettent d'exécuter une tâche de manière planifiée et de temps en temps, mais le temps minimum autorisé est de 15 minutes et ne fonctionne qu'à partir de Androis 5.0.

Salutations

Ruben
Membre enregistré
106 messages
Popularité : +3 (3 votes)
Posté le 23 octobre 2018 - 16:16
Ok,
je suis bien conscient que la batterie est vite consommer mais je me suis basé sur les demandes des clients qui veulent.
J'ai regardé TâcheEnArrièrePlan, en gros cette fonction regroupe le tirmesys et le thread secondaire ? mais toutes les 15 minutes, c 'est pas jouable pour moi. Il faudrait que je trouve une autre solution

--
- ian -
Posté le 23 octobre 2018 - 16:23
tes utilisateurs veulent le beurre et l'argent du beurre, comme tous les utilisateurs.

tu ne peux pas avoir un processus qui tourne quasi sans arret et avoir la batterie qui reste pleine.

la solution est de passer sur des smartphone avec batterie 5000 ma

ou de reduire la frequence de tes appels.
Membre enregistré
106 messages
Popularité : +3 (3 votes)
Posté le 23 octobre 2018 - 17:22
Effectivement,

c'est ce que j'ai dit à mon chef de projet.
A réduire les appels ou de trouver une autre solution pour les téléphones interroges le web service que quand c'est nécessaire.

Ok, bah merci à vous et bonne fin de journée

--
- ian -
Membre enregistré
1 603 messages
Popularité : +64 (70 votes)
Posté le 24 octobre 2018 - 08:14
Bonjour

Il est possible de lancer une actualisation périodique lors de la mise au premier plan de l'appli et de la suspendre lors de la mise en arrière plan.

--
Cordialement
François
Posté le 25 octobre 2018 - 09:30
Bonjour, je passerai par des notifications push dans votre cas
Membre enregistré
106 messages
Popularité : +3 (3 votes)
Posté le 26 octobre 2018 - 10:19
Bonjour Florian,

oui, c'est la seule alternative qui m'était venue à l'esprit.
N'en ayant jamais fait, je regarderai le webinaire de juillet qui en parle

merci encore

--
- ian -