Bonjour, J'ai une application Android qui a un service en cours d'exécution. Après 20 minutes de ce service et d'autres systèmes (such as GPS
) je voudrais l'arrêter automatiquement. Je suppose que je dois utiliser un minuteur pour cela? Est-ce que quelqu'un peut montrer un exemple de comment je pourrais le faire?Application Android et Timers
Répondre
Peut-être n'avez-vous même pas besoin de minuterie pour cela. Il suffit de garder trace du moment où votre service a été lancé par le stockage [System.currentTimeMillis()
] (http://developer.android.com/reference/java/lang/System.html#currentTimeMillis() dans une variable membre et [stopSelf
] (http://developer.android.com/reference/android/app/Service.html#stopSelf() votre service chaque fois que vous atteignez le délai d'attente
Par exemple, inclure les éléments suivants dans votre partie occupée du Service.:
if(System.currentTimeMillis() - TIMEOUT > startTime) {
stopSelf();
}
J'utiliser AlarmManager
. Mise en place d'une alarme monocoup de partir en 20 minutes. dans le BroadcastReceiver
autonome qui reçoit l'alarme, appelez stopService()
.
J'ai un blog post et certains sample code in one of my books qui couvrent AlarmManager
, bien qu'ils couvrent tous "le scénario cron
", où vous voulez obtenir le contrôle au démarrage et configurer une alarme répétée.
- 1. Comment bomber une application Android?
- 2. iphone: gérer les timers sur différentes vues
- 3. Faire un assistant comme application dans Android
- 4. Comment démarrer une nouvelle application sur Android
- 5. Comment démarrer Application Android réservée aux services
- 6. Application YouTube pour Android Play Video Intent
- 7. XMPP et Android
- 8. android bouton texte et html
- 9. VM et débogueur pour Android
- 10. Android et espace de stockage de données?
- 11. windows contre asp.net événement Application_BeginRequest avec des fils/timers
- 12. Comment puis-je interagir avec l'environnement de script Android à partir d'une application Android?
- 13. Comment lancer des applications android à partir d'une autre application
- 14. Problème avec DWR et Android-Browser
- 15. Intercepter les liens du navigateur pour ouvrir mon application Android
- 16. Android: une ou plusieurs instances de HttpClient par application
- 17. Android SQLite et d'énormes ensembles de données
- 18. Accéder aux photos depuis l'application Photos de mon application Android
- 19. Android: URL spéciale pour ouvrir Marketplace à une application spécifique?
- 20. Exportation de données Sqlite à partir d'une application Android
- 21. Android coverflow
- 22. Programmation Android 1.5 avec tabHost et boutons
- 23. ListView et l'effet onitemClicked dans Android?
- 24. À propos de Google Android et de l'API Google?
- 25. Configuration de l'application Android
- 26. oauth_callback sur Android
- 27. Unresolved Exception hôte Android
- 28. Android MenuItem Bouton bascule
- 29. Android IllegalThreadStateException dans LunarLander
- 30. Annuaire de téléphone Android
Merci. Pourriez-vous recommander le meilleur endroit pour localiser cela afin qu'il fonctionne souvent? Le service en question n'est qu'un service contrôlant un WakeLock, il est donc difficile de décider où le placer afin que le temps d'arrêt soit constamment vérifié. Merci. – Tom
Si vous ne disposez pas d'un meilleur endroit pour cela, vous pouvez créer votre propre thread, utilisez Timer.scheduleAtFixedRate, ou le AlarmManager qui a été suggéré dans une autre réponse. –