androidのrunOnUIThread(runnable)

1081 ワード

Androidでは非同期操作が頻繁に必要になりますが、Thread+Handler方式は煩雑で、AsyncTaskは一度しか実行できません.多くのニーズが満たされていません.この場合、Activityが提供するもう一つの簡単な方法runOnUI Threadを試してみることができます.runOnUI ThreadはスレッドでUI更新操作を実行するのに役立ちます.
コードは次のとおりです.
     MyActivity.this. runOnUiThread(new Runnable() { 
                    @Override 
                        public void run() { 

                           // refresh ui      

                        } 
                    });

ここで注意しなければならないのはrunOnUIThreadがActivityのメソッドであり、スレッドではシステムにどのactivity呼び出しであるかを教える必要があるので、前述のactivityが示されています.
以下はrunOnUIThreadのコードです
public final void runOnUiThread(Runnable action) {
        if (Thread.currentThread() != mUiThread) {
            mHandler.post(action);
        } else {
            action.run();
        }
    }

コードから分かるようにrunOnUI Threadは、まずUIスレッドであるか否かを判断し、そうでなければpostとし、そうであれば正常に実行する.
メインスレッドのHandlerを通過する限り.postまたはpostDelayed処理スレッドrunnableは、いずれもUIマスタースレッドに移行することができる.さらにHandlerのメカニズムはスレッドとUIの通信を処理することである.