handlerTestBar.java package com.zlj.handlerTestBar; import android.app.Activity; import android.os.Bundle; import android.os.Handler; import android.os.Message; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.ProgressBar; public class handlerTestBar extends Activity { /** Called when the activity is first created. */ Button startButtonId = null; ProgressBar bar = null; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); startButtonId = (Button)findViewById(R.id.startButton); bar = (ProgressBar)findViewById(R.id.testBarId); startButtonId.setOnClickListener(new startProgressOnClickListener()); } class startProgressOnClickListener implements OnClickListener{ @Override public void onClick(View view) { // TODO Auto-generated method stub bar.setVisibility(View.VISIBLE); BarHandler.post(updateThread); } } Handler BarHandler = new Handler(){ @Override public void handleMessage(Message msg){ bar.setProgress(msg.arg1); BarHandler.post(updateThread); } }; Runnable updateThread = new Runnable(){ int i=0; @Override public void run() { // TODO Auto-generated method stub System.out.println("startProgressBar/n"); Message msg = BarHandler.obtainMessage(); msg.arg1 = i; i = i+10; try{ Thread.sleep(1000); } catch(InterruptedException e){ e.printStackTrace(); } BarHandler.sendMessage(msg); if(i==100) { BarHandler.removeCallbacks(updateThread); } } }; } main.xml <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" > <ProgressBar android:id="@+id/testBarId" style="?android:attr/progressBarStyleHorizontal" android:layout_width="200dp" android:layout_height="wrap_content" android:max="100" android:visibility="gone" /> <Button android:id="@+id/startButton" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="start" /> </LinearLayout>