Если у меня есть Handler handler = new Handler()
и запустите для него задание с задержкой handler.postDelayed(xxx, xxx)
, можно ли проверить, вызывался ли postDelayed()
?
Как проверить, имеет ли Handler активную задачу?
Ответ 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 или нет.