0

Je me demandais, ce serait une façon plus efficace de surveiller le niveau de la batterie par programme sous Android - en utilisant un BroadcastReciever qui surveille en permanence le niveau de la batterie, ou un gestionnaire qui vérifie la batterie niveau toutes les 10 minutes en utilisant postDelayed appels en utilisant un Runnable?Contrôle de niveau de la batterie par programme sous Android - BroadcastReceiver vs Handler

Je voudrais avertir l'utilisateur lorsque le niveau de la batterie tombe en dessous d'un pourcentage spécifique. De quelle manière serait plus efficace?

+1

Les deux vous demanderont d'avoir un processus en cours d'exécution tout le temps, ce qui est déjà inefficace. C'est pourquoi, à partir d'Android O, ce que vous voulez écrire devient beaucoup plus intrusif pour l'utilisateur (un service de premier plan avec "Notification" correspondante). – CommonsWare

Répondre

0

Pour vérifier le niveau de batterie actuel de l'appareil, vous devez utiliser un BraodcastReceiver qui écoute les événements Intent.ACTION_BATTERY_CHANGED. De cette façon, votre récepteur ne fonctionne que si le niveau de la batterie a vraiment changé. En cas d'utilisation d'un Handler qui vérifie le niveau de la batterie toutes les 10 minutes, il existe des scénarios garantis où le niveau de la batterie n'a pas changé ou si le niveau de charge de la batterie a changé rapidement. (ce qui est un désavantage évident par rapport à BroadcastReceiver)