1
//case 1:post to main thread's handler
mHandler.post(new Runnable(){
public void run(){
dosomething(); //update UI
});
//case 2:run in main thread
dosomething();
//case 1:post to main thread's handler
mHandler.post(new Runnable(){
public void run(){
dosomething(); //update UI
});
//case 2:run in main thread
dosomething();
ハンドラのスレッド上にあっても、ケース1はキューに入れられ、ケース2はすぐに実行されます。
メインスレッドの場合はメインスレッドです。
しかし、あなたはワーカースレッドに属していて、メインスレッド(UIの更新など)でしか実行できないことをしたいことがよくあります。そのような場合は、メインスレッドでコードを実行するために何か特別な処理を行う必要があります。投稿したハンドラコードがその一例です。