用Thread和Handler实现倒计时


在android开发中, 很多时候需要倒计时, 如获取验证码时.


需要一个倒计时在界面显示出来, 可以开个线程更新界面, 

但非UI线程无法更新界面, 就需要用到Handler了


代码实现:

btn = (Button)findViewById(R.id.btn);
btn.setOnClickListener(new OnClickListener(){

	@Override
	public void onClick(View v) {
		new Thread(){
			@Override
			public void run() {
				for(; count > 0; count--){
					if(count<=0){
						break;
					}
					mHandler.sendEmptyMessage(0x01);
					try {
						Thread.sleep(1000);
					} catch (Exception e) {
						// TODO: handle exception
					}
				}
				mHandler.sendEmptyMessage(0x02);
			};
		}.start();
	}
			
});	
private Handler mHandler = new Handler(){
	@Override
	public void handleMessage(Message msg) {
		switch (msg.what) {
		case 0x01:
			btn.setText("倒计时("+ count+")");
			break;


		case 0x02:
			btn.setText("倒计时开始");
		default:
			break;
		}
	};
};
实现效果:

用Thread和Handler实现倒计时_第1张图片

你可能感兴趣的:(Android)