2013-05-30 4 views

ответ

5

использовать Handler для публикации. Он имеет тот же эффект runOnUiThread. На вашем экземпляре обработчика вы можете вызвать removeCallbacks(null), который удалит все элементы в очереди обработчика, или removeCallbacks(yourannableinstance), которые удалить каждый элемент yourannableinstance рода

+0

Согласен с вышеуказанным ответом. Использование Handler - лучший вариант. Добавьте к ответу ссылку http://developer.android.com/reference/android/os/Handler.html и удалите http://developer.android.com/reference/android/os/Handler.html#removeCallbacks (java.lang.Runnable) – Raghunandan

3

Вы можете использовать метод removeCallbacks(Runnable r). Если они анонимны, вы можете использовать removeCallbacksAndMessages(null);. Если это не исправить проблему, пожалуйста, дайте мне более подробную информацию.

0

Пользовательский интерфейс потока также является Looper нить, и это есть только одинMessage Queue.

Так что, если вы создаете обработчик в потоке пользовательского интерфейса, а затем вызываете handler.post(runnable), выполняемая задача будет хранить в очереди сообщений.

Если вы вызываете runOnUIThread(), задача запуска также будет в той же очереди сообщений.

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) И поможет вам удалить все обратные вызовы и сообщения.

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