#android #handler #runnable
#Android #обработчик #выполняемый
Вопрос:
Я использую HandlerThreaqd
для обработки блоков кода, для запуска которых требуется много времени:
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 */ } });
}
Понятно, что через некоторое время в очереди сообщений потока будут ожидающие выполнения, поэтому возможно ли отменить эти запускаемые файлы? кто-нибудь пытался это сделать?
Ответ №1:
вы можете отменить поток с помощью этого кода:
h.removeCallbacks("name of your Runnable Obj");
Комментарии:
1. Первоначально я думал, что
Handler
у него есть своя очередь, но после просмотра исходного кода Android; кажется, что обработчик отправляет всеMessageQueue
, что делает ваш ответ правильным