Comment faire pour démarrer/arrêter l'Exécutable/Gestionnaire?
Je suis d'essayer de maintenir des bases de données synchronisées entre un Service web et l'application Android.
Le code ci-dessous fonctionne, mais je rencontre quelques problèmes:
- Chaque fois que je vais à la page principale de l'Application d'une nouvelle infinie processus est lancé.
- Le processus ne se termine jamais
Quelqu'un peut-il expliquer comment démarrer et arrêter ce processus comme je le souhaite?
Je veux que ce processus pour exécuter toutes les 5 minutes, mais une seule fois, et lorsque l'application est ouverte.
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
final Handler handler = new Handler();
final Runnable r = new Runnable() {
public void run() {
//DO WORK
Mantenimiento();
//Call function.
handler.postDelayed(this, 1000000);
}
};
r.run();
}
- utilisation removeCallback. developer.android.com/reference/android/os/...
- vous pouvez arrêter de Gestionnaire à l'aide de ce gestionnaire.removeCallbacks();
- mais j'ai besoin d'arrêter de onDestroy
- Et où est le problème pour appeler
handler.removeCallbacks()
dans onDestroy?
Vous devez vous connecter pour publier un commentaire.
utiliser TimerTask:
http://thedevelopersinfo.wordpress.com/2009/10/18/scheduling-a-timer-task-to-run-repeatedly/
http://android.okhelp.cz/timer-simple-timertask-java-android-example/
ou
peut prendre Boolean et exécuter la boucle tant que le booléen est vrai et dormir à autre thread et tout en laissant application Boolean false.
serait d'utiliser ce code:
Toutes Les 5 Minutes? Savez-vous ce que
handler.postDelayed(this, 1000000);
n'? Il lance l'exécutable chaque 16.7 minutes. Ce n'est pas très difficile de savoir comment convertir des minutes en millisecondes.handler.removeCallbacks()
et la variable booléenne qui vous permettrait de vérifier avant depostDelayed()
étaient déjà mentionnées.