2017-10-17 16 views
0

Je souhaite implémenter la fonctionnalité de comptage de temps dans mon application. D'abord j'ai utilisé la classe Handler pour cela en utilisant la méthode postDelay cela fonctionne bien quand le téléphone ne passe pas en mode veille. cette même chose est également arrivé avec CountDownTimer et Timer class. Lorsque le téléphone passe en mode veille, la vitesse du minuteur diminue. Cela arrive au hasard.Handler, CountDownTimer et Timer ne fonctionnent pas lorsque le téléphone passe en mode veille

+0

Allez au lit, dormez bien, et quand vous vous réveillez, vérifiez l'heure actuelle et comptez tout ce que vous voulez mais seulement quand vous êtes "vivant" – pskink

+0

Je veux effectuer une tâche lorsque la valeur de comptage devient 5 et 0. Donc, le nombre devrait continuer en arrière-plan –

+1

utilisez donc 'AlarmManager' pour vous réveiller – pskink

Répondre

0

Il y a quelques problèmes

Tout d'abord certains des appareils tels que Xiaomi, Meizu, etc ont app sécurité qui peut bloquer le travail des services de base.

After android 7.0 there are features to block background too. Donc, vous ne pouvez pas utiliser simplement Service.

En supposant que je suppose que la meilleure solution utilisera wake lock avec Intent Service qui se déroulera votre postDelay, CountDownTimer et Timer. Pourquoi voudriez-vous «compter» quoi que ce soit si vous vous couchez?