2016-10-08 2 views
0

Я использую HandlerThreaqd для обработки блоков кода, который требует много времени для запуска:Отменить Runnables разместил Хэндлер с укротителем тему в Android

HandlerThread t = new ..... 
Handler h = new Handler(t.getLooper()); 
while(true) 
{ 
    h.post(new Runnable(){ public void run() { /* code that needs a lot of time */ } }); 
} 

Очевидно, что после определенного периода времени будет ожидающие выполнения в очереди сообщений потока, так можно ли отменить эти runnables? кто-то пытался это сделать?

ответ

0

вы можете отменить нить с помощью этого кода:

h.removeCallbacks("name of your Runnable Obj"); 
+0

Первоначально я думал, что 'Handler' имеет свою собственную очередь, но после того, как смотреть на исходный код Android; кажется, что обработчик отправляет все в 'MessageQueue', что делает ваш ответ правильным – ammcom

Смежные вопросы