zoukankan      html  css  js  c++  java
  • 处理信息Message-Handler

    package com.hanqi.zuoye;
    
    import android.os.Bundle;
    import android.os.Handler;
    import android.os.Message;
    import android.support.v7.app.AppCompatActivity;
    import android.view.View;
    import android.widget.Button;
    import android.widget.TextView;
    
    import java.util.Random;
    
    public class xianchengActivity extends AppCompatActivity {
    
        Button bt, b1,b2,b3;
        TextView tv ,tv2;
    
        Random r=new Random();
        //定义Handler
           Handler h=new Handler(){
            @Override
            public void handleMessage(Message msg) {
                super.handleMessage(msg);
                //处理消息
                if(msg.what==1){
                    String str = msg.obj.toString();
                    tv.setText("+"+str+"+");
                }
                if(msg.what==2){
                    tv.setText("这是空消息");
                }
            }
        };
        int ii=10;
        Handler h2=new Handler(){
            @Override
            public void handleMessage(Message msg) {
                super.handleMessage(msg);
                switch (msg.what){
                    case 1:
                        if(ii==20){
                            return;
                        }
                        ii++;
                        tv2.setText(ii+"");
                        //继续发送消息
                        h2.sendEmptyMessageDelayed(1, 1000);
                        h2.removeMessages(2);
                        break;
                    case 2:
                        if(ii==1){return;}
                        ii--;
                        tv2.setText(ii + "");
                        //继续发送消息
                        h2.sendEmptyMessageDelayed(2, 1000);
                        h2.removeMessages(1);
                        break;
                    case 3:
                        h2.removeMessages(1);
                       h2.removeMessages(2);
                        break;
                }
            }
        };
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_xiancheng);
            bt=(Button)findViewById(R.id.bt);
            b1=(Button)findViewById(R.id.b1);
            b2=(Button)findViewById(R.id.b2);
            b3=(Button)findViewById(R.id.b3);
            tv=(TextView)findViewById(R.id.tv);
            tv2=(TextView)findViewById(R.id.tv2);
        }
    
        public void bt1(View v){
            for( int i=0;i<10;i++){
    
                new Thread(
    
                ){
                    @Override
                    public void run() {
                        try {
                            Thread.sleep(r.nextInt(1000));
                           }
                        catch (Exception e){
    
                        }
                        runOnUiThread(new Runnable() {
                            @Override
                            public void run() {
                                bt.setText("城市1");
                            }
                        });
    
                        return;
                    }
                }.start();
                new Thread(){
                    @Override
                    public void run() {
    
                        try {
                            Thread.sleep(r.nextInt(1000));
                        }
                        catch (Exception e){
    
                        } runOnUiThread(new Runnable() {
                            @Override
                            public void run() {
                                bt.setText("城市2");
                            }
                        });
    
                        return;
                    }
                }.start();
            }
        }
        public void bt2(View v){
            //启动线程
            new Thread(
            ){
                @Override
                public void run() {
                    //发送消息
                    //创建Message
                    Message m = Message.obtain();
                    m.what=1;//id
                    m.obj="我传递的信息";
    
                    //发送即时消息
                    h.sendMessage(m);
                    m = Message.obtain();
                    m.what=1;//id
                    m.obj="我传递的信息2";
    
                    //发送延时消息
                    h.sendMessageDelayed(m,3000);
    
                    //发送空消息
                    //只发送一个what,用于判断,无需message实例
                    h.sendEmptyMessage(2);
    
                    //延时空消息
                    h.sendEmptyMessageDelayed(2,3000);
    
                }
            }.start();
        }
        public void bt3(View v){
            //if(v.getId()==R.id.b1){}
            switch (v.getId()){
                case  R.id.b1:
                    //发送消息
                    h2.sendEmptyMessage(1);
    
    
                   b1.setEnabled(false);
                    b2.setEnabled(true);
                    b3.setEnabled(true);
                    if(ii==20){
                        b1.setEnabled(false);
                        b3.setEnabled(false);
                    }
                    break;
    
                case  R.id.b2:
                    //发送消息
                    h2.sendEmptyMessage(2);
    
                    b1.setEnabled(true);
                    b2.setEnabled(false);
                    b3.setEnabled(true);
                    if(ii==1){
                        b2.setEnabled(false);
                        b3.setEnabled(false);
                    }
                    break;
                case  R.id.b3:
                    //发送消息
                    h2.sendEmptyMessage(3);
    
                    b1.setEnabled(true);
                    b2.setEnabled(true);
                    b3.setEnabled(false);
                    break;
            }
    
        }
    }
  • 相关阅读:
    POJ2155 Matrix
    POJ3469 Dual Core CPU
    洛谷P1469找筷子
    CodeForces 97D. Robot in Basement
    UVa11542 Square
    清澄 A1485. Catch The Penguins 抓企鹅
    Bzoj2595: [Wc2008]游览计划
    HDU4085 Peach Blossom Spring
    CodeForces 333E. Summer Earnings
    洛谷P3389 【模板】高斯消元法
  • 原文地址:https://www.cnblogs.com/storm47/p/5501015.html
Copyright © 2011-2022 走看看