本帖最后由 aizhengdong 于 2012-12-31 14:17:23 编辑

解决方案 »

  1.   

    myhandler.sendMessageDelayed(msg, 2000);只是延迟消息的发送,它不能让发送消息线程延时。所以在2s内就发送了100次的进度消息。
      

  2.   

    使用DELAY就不要使用线程:
    private Handler myhandler = new Handler(){
            @Override
            public void handleMessage(Message msg) {
                switch (msg.what) {
                case 1:
    progress += 5;
    if (progress < 100){
        Message msg = myhandler.obtainMessage();
        msg.what = 1;    
        myhandler.sendMessageDelayed(msg, 2000);
    }
                    pgbar.setProgress(progress);
                    break;
                }    
                super.handleMessage(msg);            
            }
        };
      

  3.   

    int i=0;
    myhandler.sendMessageDelayed(msg, i+=2000);