用Thread和Handler实现倒计时

来源:互联网 发布:java开发工具百度云 编辑:程序博客网 时间:2024/05/17 02:41


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


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

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


代码实现:

<span style="font-size:18px;">btn = (Button)findViewById(R.id.btn);btn.setOnClickListener(new OnClickListener(){<span style="white-space:pre"></span>@Overridepublic void onClick(View v) {new Thread(){@Overridepublic void run() {for(; count > 0; count--){if(count<=0){break;}mHandler.sendEmptyMessage(0x01);try {Thread.sleep(1000);} catch (Exception e) {<span style="white-space:pre"></span>// TODO: handle exception}}mHandler.sendEmptyMessage(0x02);};}.start();}});</span>
<span style="font-size:18px;">private Handler mHandler = new Handler(){<span style="white-space:pre"></span>@Override<span style="white-space:pre"></span>public void handleMessage(Message msg) {<span style="white-space:pre"></span>switch (msg.what) {<span style="white-space:pre"></span>case 0x01:<span style="white-space:pre"></span>btn.setText("倒计时("+ count+")");<span style="white-space:pre"></span>break;<span style="white-space:pre"></span>case 0x02:<span style="white-space:pre"></span>btn.setText("倒计时开始");<span style="white-space:pre"></span>default:<span style="white-space:pre"></span>break;<span style="white-space:pre"></span>}<span style="white-space:pre"></span>};};</span>
实现效果:



0 0
原创粉丝点击