Wie kann ich runnable stoppen, wenn die App in den Hintergrund wechselt?

8

Ich versuche ein Runnable zu erstellen, das Anzeigen alle 5 Sek. laden kann (natürlich sind 5 Sek. zu schnell, es dient nur zu Testzwecken)

Hier ist mein Code:

%Vor%

Wenn ich die Home-Taste drücke, um die App im Hintergrund zu verbergen, lädt das Runnable weiterhin die Anzeigen um 5 Sekunden.

Gibt es eine Methode, um Runnable zu stoppen, wenn eine App im Hintergrund versteckt ist? Vielen Dank.

    
Kit Ng 26.11.2012, 07:14
quelle

3 Antworten

29

Verwenden Sie einfach onPause()

Wird als Teil des Aktivitätslebenszyklus aufgerufen, wenn eine Aktivität in den Hintergrund tritt, aber (noch) nicht getötet wurde

%Vor%

Optional

Wenn Sie das runnable fortsetzen möchten. Überschreibe einfach den onResume() Callback

%Vor%

Entferne auch handler.postDelayed(runnable, 5000); in onCreate()

    
user948620 26.11.2012, 07:19
quelle
2

onPause() onStop() functions können Sie dort handler.removeCallbacks(runnable);

setzen

Weitere Informationen erhalten Sie hier Sehen Sie sich den Kreis der Aktivitätslebensdauer an

    
Mikhaili 26.11.2012 07:24
quelle
0

onPause () wird aufgerufen, wenn die Anwendung im Hintergrund läuft. Entfernen Sie Runnable in onPause ()

%Vor%     
Lazy Ninja 26.11.2012 07:21
quelle

Tags und Links