消息机制-倒计时

来源:互联网 发布:中情局十条诫令 知乎 编辑:程序博客网 时间:2024/06/08 17:25
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() {@Overridepublic 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{@Overridepublic void run() {// TODO Auto-generated method stubLooper.prepare();// 初始化Looperwhile(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 blocke.printStackTrace();}}Looper.loop();//启动该线程的消息队列}    }        //主线程Handler    class myHandler extends Handler{        @Overridepublic void handleMessage(Message msg) {// TODO Auto-generated method stubsuper.handleMessage(msg);switch (msg.what) {case 0://计时改变/每秒text.setText(msg.obj.toString());//当conn=0时子线程又走了一遍while此时conn=-1,计时值=0if(conn==-1){//计时结束改变按钮颜色btn.setTextColor(res.getColor(R.color.blues));}break;}    }    }    }

0 0
原创粉丝点击