我使用runOnUIThread
方法将Runnable
任务传递到主线程队列,但在发送新任务之前,我需要清除之前发送的所有队列任务。如何操作?
我使用runOnUIThread
方法将Runnable
任务传递到主线程队列,但在发送新任务之前,我需要清除之前发送的所有队列任务。如何操作?
使用一个Handler
来进行发布。它具有与runOnUiThread相同的效果。在您的处理程序实例上,您可以调用removeCallbacks(null)
,它将删除处理程序队列中的每个元素,或者removeCallbacks(yourannableinstance)
,它将删除yourannableinstance
类型的每个元素
removeCallbacks(Runnable r)
方法。如果它们是匿名的,则可以使用removeCallbacksAndMessages(null);
。如果这不能解决问题,请给我更多细节。5289 public final void runOnUiThread(Runnable action) {
5290 if (Thread.currentThread() != mUiThread) {
5291 mHandler.post(action); // runOnUiThread also calls handler.post()
5292 } else {
5293 action.run();
5294 }
5295 }
mHandler.removeCallbacksAndMessages(null)
可以帮助您删除所有的回调和消息。
.removeCallbacksAndMessages(null)
来取消彼此,必须使用相同的处理程序引用。即使是两个new Handler(Looper.getMainLooper());
也无法相互取消。 - 林果皞