Подтвердить что ты не робот

Как проверить, имеет ли Handler активную задачу?

Если у меня есть Handler handler = new Handler() и запустите для него задание с задержкой handler.postDelayed(xxx, xxx), можно ли проверить, вызывался ли postDelayed()?

4b9b3361

Ответ 1

можно проверить, был ли вызван postDelayed() или нет?

Одно быстрое исправление в методе присваивает переменной boolean значение true, а затем просто выполняет проверку.

Ответ 2

Для этого нет прямого API, но вы можете сделать это для этого, используя функцию sendEmptyMessage. Надеюсь, это поможет.

handler.sendEmptyMessage(some_integer);//Do this when you add the call back.
if(handler.hasMessages(some_integer))
handler.removeMessages(some_integer);//Do this after removing the call back.

Ответ 3

Обработчик при отправке Runnable получает сообщение с полем "что" == 0, поэтому теоретически вы можете вызвать hasMessages(0), но вы не можете проверить, не выдал ли он ожидающий Runnable - например, при отправке r0 и r1 вы не можете проверьте, ожидает ли r0 или нет.