Mam HandlerThread, do którego ciągle wysyłam działający co 5 sekund. Coś takiego:Jak bezpiecznie wyjść z lokaja HandlerThreada
HandlerThread thread = new HandlerThread("MyThread");
thread.start();
Handler handler = new Handler(thread.getLooper());
handler.post(new Runnable() {
public void run() {
//...
handler.postDelayed(this, 5000);
}
});
muszę opuścić looper w pewnym momencie, po 60 sekundach czy coś takiego .. więc piszę:
mainHandler = new Handler(Looper.myLooper()); //main thread's
mainHandler.postDelayed(new Runnable() {
@Override
public void run() {
thread.getLooper().quit();
}
}, 60000);
myślę, że to powoduje looper aby zamknąć nagle , więc mogę zacząć to "ostrzeżenie" komunikaty:
w/kolejka komunikatów (3726): java.lang.RuntimeException: Handler (android.os.Handler) {} 4823dbf8 wysyłaniem wiadomości do Handler na martwy wątek
chcę uniknąć tego błędu wiad, pomyślałem, że mogę go rozwiązać za pomocą metody Looper.quitSafely()
.. ale sprawdziłem API i nie jest już dostępny. Czy ktoś wie, co się z nim stało? (To nie jest przestarzałe jak niektóre inne metody).
Czy istnieje sposób na bezpieczne opuszczenie chwytaka? Dzięki!
zaprzestania wysyłania handler.postDelayed (to 5000) opóźniony Runnables – pskink
jak przy użyciu flagę lub coś? – sundie
może mógłbyś wypróbować thread.getLooper(). QuitSafely()? – Richard