关于ProgressBar的简单问题

public void onCreate(Bundle savedInstanceState) {
.........
new Thread(new Runnable()
{
public void run()
{
......
handler.post(new Runnable()
{
public void run()
{

                    progressBar.setVisibility(8)                       }
            });
          //progressBar.setVisibility(8);
         }
     }

}

这是个进度条的demo,最后让进度条消失,为什么一定要用handler.post而不能直接progressBar.setVisibility(8);
如果用直接使用progressBar.setVisibility(8);而不用handler.post则在进度条到达100%处会图片说明

 new Thread(new Runnable() //这里起了线程,对于UI界面更新来说,需要在UI线程中,也就是不能再Thread线程中直接更新UI界面
{
public void run() 
{
......
handler.post(new Runnable() //handler.post中执行的操作是在UI线程中的,所以能进行UI更新
{
public void run() 
{
                    progressBar.setVisibility(8)                       }
            });
          //progressBar.setVisibility(8);
         }
     }
}