Handler stoppen

  • 4 Antworten
  • Letztes Antwortdatum
H

heikoj10.1

Neues Mitglied
4
Hallo Zusammen,

ich habe mal wieder ein Problem mit einer zeitlichen Verzögerung, das heißt dieses Mal möchte ich die Verzögerung abbrechen.

in dem Code unten verzögere ich die Ausführung einer Aktion, es sollte aber auch eine Möglichkeit geben während der Verzögerung die Aktion abzubrechen.

Code:
h1 = new Handler();
h1.postDelayed(myRunnable1 = new Runnable() {
    public void run() {
    
    //Ausgaben usw.

    }
}, (wechselpause * 1000) / 2);

Über einen Tastendruck komme ich zurück auf das übergeordnete Menü.

Aber, im Hintergrund läuft der Handler weiter und verrichtet seinen Dienst, das erkenne ich daran, dass der Ton, der erklingt wenn die Zeit abgelaufen ist, kommt, auch wenn ich schon wieder im anderen Menü bin.

Ich vermute, dass ich den handler irgendwie stoppen bzw. zurücksetzten muss, also kein Problem für die Experten hier im Forum.

Für eine Unterstützung wäre ich sehr dankbar.

Viele Grüße Heiko
 
Hallo Heiko,

woher hast du eigentlich deinen Programmierstil - resp. deine Beispiele her ? :)

Richtige Deklaration :
Code:
new Thread(new Runnable()
        {
   
            public void run()
            {


Dein Thread oben wartet die komplett von dir angegeben Zeit, bis irgendwas passiert.
Da kannst du auch nichts abbrechen.

Nimm für deinen Zweck einen AsyncTask , oder arbeite im Thread mit einer TimeLoop und übergeordneten Cancel - Flag
 
Zuletzt bearbeitet:
AsyncTasks sind neuerdings als deprecated markiert. Deshalb würde ich eher zu einem Thread mit runOnUiThread Aufruf raten.
 
runOnUIThread wird verwendet, wenn er innerhalb des Threads auf die UI zugreifen möchte , was er nicht tut.
Das hat also nichts mit seinem "Warte-Thread" zu tun .

Und richtig, AsyncTask ist als deprecated markiert , allerdings erst ab API Level 30 (Android 11) also für sein Problem erst einmal
unrelevant. Zumal er ab 30 eh auf Kotlin wechseln sollte.
 
Zuletzt bearbeitet:
  • Danke
Reaktionen: jogimuc
Hi, vielen Dank für Eure Antworten.
Ich werde es mal probieren.
 
  • Danke
Reaktionen: swa00

Ähnliche Themen

A
Antworten
4
Aufrufe
593
AppDevelopment
A
Zurück
Oben Unten