У меня есть таймер, работающий в потоке. Это код:Stop Timer in Thread Android
timer = new Timer();
start_timer = new Thread(new Runnable() {
public void run() {
timer.schedule(new TimerTask() {
@Override
public void run() {
myHandler.post(new Runnable() {
public void run() {
Log.e("asd", String.valueOf(tmp_chiamata_id));
//do somethings
Toast.makeText(getApplicationContext(), start_timer.getState().toString(), Toast.LENGTH_LONG).show();
}
});
}
}, 0, 1000);
}
});
start_timer.start();
Чтобы остановить таймер я пишу это:
if(timer != null){
timer.cancel();
start_timer.interrupt();
}
Проблема заключается в том, что LogCat остановка для отображения ASD но тосты продолжающегося шоу сообщения Остановлено. Я также попытался остановить поток с помощью start_timer.stop(), но он все равно не работает. Как я могу сделать? Спасибо, Маттиа
Вы знаете, таймер начинает свою собственную нить? также все, что вы собираетесь делать, что эффекты ui должны быть сделаны через обработчик – L7ColWinters
Я решил. Таймер и поток остановились правильно, произошла другая ошибка, не зависящая от этих двух объектов – pindol