Bonjour,
Je suis en train de développer une application récupérant des statistiques sur l'utilisation de son téléphone. J'ai crée un service qui récupère les données qui m’intéressent ainsi qu'une activité qui affiche ces statistiques sous forme de courbes, de camemberts, etc ...
Tout d'abord je voudrais que mon service fonctionne en permanence afin de collecter le maximum de données, je me suis servi d'un broadcast receiver afin qu'il soit lancé automatiquement à chaque démarrage du téléphone, cependant je me demandais si il n'existais pas de moyens plus fiables pour s'assurer que le service tourne en permanence. J'ai utilisé START_STICKY mais lorsque j'arrête le service manuellement en passant par les paramètres du téléphone le service ne redémarre pas. De plus à l'installation de l'application je suis obligé de redémarrer mon téléphone pour que le service se mette en marche.
Je voudrais également que mon service enregistre ses données dans une base de donnée afin que l'activité puisse les récupérer lorsque cela est nécessaire. Cependant j'ai cru comprendre qu'actualiser une base de donnée était une action qui prenait du temps à s’exécuter et je voudrais que cela affecte le moins possible l'utilisation du téléphone. J'ai donc d'abord pensé à le faire périodiquement grâce à une alarme (toutes les 30 minutes pas exemple) mais il y quand même un risque que cela arrive en même temps que l’exécution d'un jeu 3D ... Je me demandais donc si il n'était pas possible d'actualiser la base de donnée lorsque l'utilisateur éteint l'écran par exemple. Existe t-il une méthode renvoyant l'état de l'écran ? A défaut existe t-il un moyen d'effectuer une tache lourde en ralentissant au minimum l'appareil ?
Merci d'avance
Partager