runOnUIThread
メソッドを使用してRunnable
タスクをメイン スレッド キューに渡しますが、新しいタスクを送信する前に、以前に送信したすべてのキュー タスクをクリアする必要があります。どうやってするの?
4190 次
3 に答える
1
UI スレッドもLooper
スレッドであり、1 つしかありません Message Queue
。
したがって、UI スレッドでハンドラーを作成してから を呼び出す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)
、すべてのコールバックとメッセージを削除するのに役立ちます.
于 2016-01-13T09:58:18.897 に答える