androidのrunOnUIThread(runnable)
1081 ワード
Androidでは非同期操作が頻繁に必要になりますが、Thread+Handler方式は煩雑で、AsyncTaskは一度しか実行できません.多くのニーズが満たされていません.この場合、Activityが提供するもう一つの簡単な方法runOnUI Threadを試してみることができます.runOnUI ThreadはスレッドでUI更新操作を実行するのに役立ちます.
コードは次のとおりです.
ここで注意しなければならないのはrunOnUIThreadがActivityのメソッドであり、スレッドではシステムにどのactivity呼び出しであるかを教える必要があるので、前述のactivityが示されています.
以下はrunOnUIThreadのコードです
コードから分かるようにrunOnUI Threadは、まずUIスレッドであるか否かを判断し、そうでなければpostとし、そうであれば正常に実行する.
メインスレッドのHandlerを通過する限り.postまたはpostDelayed処理スレッドrunnableは、いずれもUIマスタースレッドに移行することができる.さらにHandlerのメカニズムはスレッドと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の通信を処理することである.