首先,post和postDelay都是Handler的方法,用以在子线程中发送Runnable对象的方法;

其次,Android中post()方法可以直接在非UI线程中更新UI,不同与Handelr的Send类方法,需要进行切换;

最后,两个方法在实现UI线程事件的时间上有所区别,postDelayed()方法用以延期执行,post则是立即执行。
// 三种切回主线程更新UI的方法
```
imageView.post(new Runnable() {
@Override
public void run() {
imageView.setImageBitmap(bitmap1); // 素描图
}
});

            runOnUiThread(new Runnable() {
                @Override
                public void run() {
                    orignView.setImageBitmap(bitmap2); // 素描图
                }
            });

            handler.post(new Runnable() {
                @Override
                public void run() {
                    threeView.setImageBitmap(bitmap3); // 素描图
                }
            });
  
send方法:  

private Handler handler = new Handler(){
    @Override
    public void handleMessage(Message msg) {
        super.handleMessage(msg);
        switch (msg.what) {      //判断标志位
            case 1:
                /**
                 获取数据,更新UI
                */
                break;
        }
    }
};
   
 
public class WorkThread extends Thread {
 
    @Override
    public void run() {
        super.run();
       /**
         耗时操作
        */
  
        //从全局池中返回一个message实例,避免多次创建message(如new Message)
        Message msg =Message.obtain();  
        msg.obj = data;
        msg.what=1;   //标志消息的标志
        handler.sendMessage(msg);
    } 
}