因为progressBar是线程安全的,他是例外的。
http://bbs.csdn.net/topics/360244795

解决方案 »

  1.   

    自己找到答案了。在 setProgress 的源码中,首先会判断当前线程是否为主UI线程,若是主UI线程则直接调用 doRefreshProgress 方法更新进度;若不是主UI线程则会先创建一个RefreshProgressRunnable 对象,然后调用 view 的 post(Runnable action) 方法,将 RefreshProgressRunnable 放到主UI线程的消息队列等待处理。所以更新进度的时候,在不在主线程调用setProgress 方法是没有影响的。同理,SeekBar、ProgressDialog 也是可以在子线程直接更新进度的。
      

  2.   

    话说楼下应该更合理吧http://blog.csdn.net/androidzhaoxiaogang/article/details/8136222