public class MainActivity extends Activity {
private TextView text;
private Button btn;
private int conn=10;
private Handler handler;
private Resources res;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
init();
handler=new myHandler();
btn.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
//重新计时改变按钮字体颜色
btn.setTextColor(res.getColor(R.color.black));
if(conn<10&&conn>0){
Log.e(">>>>>>>>>", conn+"");
return;
}else{
conn=10;
new childthread().start();
}
}
});
}
private void init(){
text=(TextView) findViewById(R.id.text);
btn=(Button) findViewById(R.id.btn);
res=getResources();
}
//子线程发送消息给主线程
class childthread extends Thread{
@Override
public void run() {
// TODO Auto-generated method stub
Looper.prepare();// 初始化Looper
while(conn>=0){
Message m=handler.obtainMessage();
m.obj=conn;
m.what=0;
handler.sendMessage(m);
conn--;
try {
Thread.sleep(1000);//间隔1秒发送一次
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
Looper.loop();//启动该线程的消息队列
}
}
//主线程Handler
class myHandler extends Handler{
@Override
public void handleMessage(Message msg) {
// TODO Auto-generated method stub
super.handleMessage(msg);
switch (msg.what) {
case 0:
//计时改变/每秒
text.setText(msg.obj.toString());
//当conn=0时子线程又走了一遍while此时conn=-1,计时值=0
if(conn==-1){
//计时结束改变按钮颜色
btn.setTextColor(res.getColor(R.color.blues));
}
break;
}
}
}
}
消息机制-倒计时
最新推荐文章于 2021-02-05 11:01:00 发布