安卓handler初识(三)

来源:互联网 发布:伤不起dj网络歌手 编辑:程序博客网 时间:2024/06/05 05:30

在二里面中,主要是worker Thread向main Thread中发送消息。

今天试试从main Thread向worker Thread发送消息。

可以分为三个步骤,1、生成looper对象,2、在worker Thread中生成Handler对象,3、在main Thread中发送消息。


public class MainActivity extends Activity{      private Button mbutton;      private Handler mhandler;      @override      protected void onCreat(Bundle saveInstanceState){          super.onCreat(saveInstanceState);          setContentView(R.layout.activity_main);            mbutton = (Button)findViewById(R.id.buttonId);          button.setOnClickListener(new buttonListener(){            @override            public void onClick(View view){                 System.out.println("onClick:" + Thread.currentThread().getName());                Message msg = handler.obtainMessage();                handler.sendMessage(msg);            }        });          workeThread wt = new workeThread();        wt.start();    }      class WorkThread extends Thread{          @override          public void run(){              //准备looper对象            Looper.prepare();            //在worker Thread当中生成一个Handler对象            mhandler = new Handler(){                @override                public voir handleMessage(Message msg){                System.out.println("handleMessage:" + Thread.currentThread().getName());                    System.out.println("收到了消息对象");                }            };            //调用looper的loop方法之后,looper对象将不断的从消息队列当中取出消息对象,然后调用handler的handleMessage()方法处理该消息对象。如果消息队列当中没有对象,则该线程阻塞。            Looper.loop();        }      }    }//完成了main Thread向worker Thread发送消息的操作


原创粉丝点击