步骤:
1、点击开始按钮使用handler.post(update)出发线程,将线程添加到线程队列
2、线程使用Runnable实现其run()方法,设置消息对象值并sendMessage(msg)添加到消息队列
3、在Handler()中接收msg值,并setProgress(msg.arg1)设置进度条值
代码:
public class MainActivity extends Activity {
private ProgressBar pbBar;
private Button btn_start, btn_end;
private int i = 0;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
pbBar = (ProgressBar) findViewById(R.id.pb_bar);
btn_start = (Button) findViewById(R.id.btn_start);
btn_end = (Button) findViewById(R.id.btn_end);
btn_start.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(MainActivity.this, "开始加载。。。", Toast.LENGTH_SHORT)
.show();
handler.post(update);
}
});
btn_end.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(MainActivity.this, "停止加载", Toast.LENGTH_SHORT)
.show();
handler.removeCallbacks(update);
}
});
}
Handler handler = new Handler() {
public void handleMessage(Message msg) {
pbBar.setProgress(msg.arg1);
handler.post(update);
}
};
Runnable update = new Runnable() {
@Override
public void run() {
i += 10;
Message msg = handler.obtainMessage();
msg.arg1 = i;
try {
Thread.sleep(1000);
} catch (InterruptedException e) {
e.printStackTrace();
}
handler.sendMessage(msg);
if (i == 100) {
handler.removeCallbacks(update);
}
}
};
}