Ich habe eine HandlerThread, auf die ich alle 5 Sekunden eine lauffähige veröffentlichen. Etwas wie folgt aus:Wie HandlerThread Looper sicher zu beenden
HandlerThread thread = new HandlerThread("MyThread");
thread.start();
Handler handler = new Handler(thread.getLooper());
handler.post(new Runnable() {
public void run() {
//...
handler.postDelayed(this, 5000);
}
});
Ich brauche den Looper zu einem bestimmten Zeitpunkt zu beenden, nach 60 Sekunden oder so ähnlich .. so ich schreibe:
mainHandler = new Handler(Looper.myLooper()); //main thread's
mainHandler.postDelayed(new Runnable() {
@Override
public void run() {
thread.getLooper().quit();
}
}, 60000);
Ich denke, das den Greifer bewirkt abrupt zu beenden , so beginne ich diese "Warnung" -Meldungen erhalten:
W/Message (3726): java.lang.RuntimeException: Handler (android.os.Handler) {} 4823dbf8 Nachricht an einen Handler auf einem toten Senden Gewinde
ich diesen Fehler msg vermeiden wollen, dachte ich, dass ich es mit Hilfe der Looper.quitSafely()
Methode lösen könnte .. aber ich überprüfte die API und es ist nicht mehr verfügbar. Weiß jemand, was passiert ist? (Es ist nicht veraltet wie einige andere Methoden).
Gibt es eine Möglichkeit, den Looper sicher zu verlassen? Vielen Dank!
Stop Senden handler.postDelayed (this, 5000) verzögert Runnables – pskink
wie eine Fahne oder etwas mit? – sundie
vielleicht könnten Sie versuchen thread.getLooper(). QuitSafely()? – Richard