Wie start - /Stopp-Lauffaehig/Handler?
Ich versuche zu pflegen Datenbanken synchronisiert zwischen einem Webservice und Android-app.
Der untenstehende code funktioniert, aber ich einige Probleme:
- Jedes mal, wenn ich gehe zur Hauptseite der App einen neuen endlos-Prozess gestartet wird.
- Der Prozess endet nie
Kann mir jemand erklären, wie man starten und stoppen diesen Prozess, wie ich möchte?
Ich möchte an diesem Prozess zu laufen, alle 5 Minuten, aber nur einmal, und wenn die app geöffnet ist.
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();
}
verwenden removeCallback. developer.android.com/reference/android/os/...
Sie können stoppen Handler mit dieser handler.removeCallbacks();
aber ich brauche, um ihn zu stoppen onDestroy
Und wo ist das problem zu nennen
Sie können stoppen Handler mit dieser handler.removeCallbacks();
aber ich brauche, um ihn zu stoppen onDestroy
Und wo ist das problem zu nennen
handler.removeCallbacks()
im onDestroy?InformationsquelleAutor Zartch | 2012-05-15
Du musst angemeldet sein, um einen Kommentar abzugeben.
entweder 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/
oder
nehmen kann Boolean-und ausführen der Schleife während der Boolesche Wert "true" und stellen Sie den Schlaf, um den anderen thread und beim verlassen der app machen Boolean false.
Verwenden Sie nicht die java-Timer in Android. Sie sind nicht zuverlässig. Handler sind die Timer-äquivalente in Android.
InformationsquelleAutor Dheeresh Singh
würde diesen code verwenden:
InformationsquelleAutor thepoosh
Alle 5 Minuten? Wisst Ihr überhaupt was
handler.postDelayed(this, 1000000);
? Es beginnt mit der ablaufenden jeden 16.7 Minuten. Es ist nicht sehr schwierig herauszufinden, wie konvertieren von Minuten bis Millisekunden.handler.removeCallbacks()
und die Boolesche variable, die Sie prüfen, bevorpostDelayed()
wurden bereits erwähnt.InformationsquelleAutor The incredible Jan