2011-02-08 5 views
0

Je calculais la création d'applications pour achats en ligne dans lequel j'ai une offres Date de début et date de fin ..Android Courir minuterie

A partir de ce deux dates que je veux calculer le temps restant pour le Deal mettre fin en quelques secondes base .. I calculés jours restants, secondes, heures, minutes ..

Je veux afficher le temps restant en Jours: heures: minutes: secondes Format ...

Bien que je passe à la prochaine activité cette fois-ci devrait fonctionner en arrière-plan dans lequel le second doit être mis à jour toutes les secondes.

Si je déplace à nouveau cette activité je veux afficher la durée restante mise à jour ...

Également dans mon interface utilisateur le temps restant doit être réduit seconde par seconde.

Répondre

1

Au lieu de créer un service, je créerais un Handler qui mettrait à jour votre interface utilisateur. Vous pouvez maintenant appeler sendEmptyMessageDelayed avec un délai de 1000ms. Dans la méthode handleMessage, vous pouvez mettre à jour votre interface utilisateur et appeler à nouveau sendEmptyMessageDelayed. Ne comptez pas sur Android pour vous rappeler exactement à l'heure. recalculer le temps restant de temps en temps au lieu de simplement le diminuer d'une unité.

Si l'activité est en arrière-plan, vous ne devez pas mettre à jour l'interface utilisateur car l'activité est en pause. Désactivez tout le processus de mise à jour dans la méthode onPause et réactivez-le dans votre méthode onResume. Si votre méthode est détruite du système alors qu'elle était en arrière-plan, votre méthode onCreate sera rappelée et vous devrez recalculer le temps restant.

Assurez-vous de bien comprendre le processus ActivityLifecycle avant d'implémenter ces modifications.

+0

Merci pour votre réponse je l'ai .. – Venky

0

Il semble que vous ayez besoin d'un service et d'une activité avec le service exécutant l'opération de minutage et l'activité présentant les informations de temps.