1、定义一个子线程,线程内创建Handler

private MyThread myThread;  class MyThread extends Thread{        public Handler myHandler;        @Override        public void run (){            //建立消息循环的步骤            Looper.prepare();//1、初始化Looper            myHandler = new Handler(){//2、绑定handler到CustomThread实例的Looper对象                @Override                public void handleMessage (Message msg) {//3、定义处理消息的方法                   switch(msg.what) {                        case 123:                            //do what you want                        default:                    }                }            };            Looper.loop();//4、启动消息循环        }    }


2、发送消息,如点击按键

Message message = new Message();message.what=123;myThread.myHandler.sendMessage(message);

所有代码

package com.michael.interthreadtest;import android.app.Activity;import android.os.Looper;import android.os.Message;import android.os.Bundle;import android.os.Handler;import android.view.View;import android.widget.Button;import android.widget.Toast;public class MainActivity extends Activity {   private MyThread myThread;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        Button btn = (Button)findViewById(R.id.button);        Button btn2 = (Button)findViewById(R.id.button2);        myThread=new MyThread();        myThread.start();        btn.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View v) {                Message message = new Message();                message.what = 1;                myThread.myHandler.sendMessage(message);            }        });        btn2.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View v) {                Message message = new Message();                message.what=2;                myThread.myHandler.sendMessage(message);            }        });    }    class MyThread extends Thread{        public Handler myHandler;        @Override        public void run (){            //建立消息循环的步骤            Looper.prepare();//1、初始化Looper            myHandler = new Handler(){//2、绑定handler到CustomThread实例的Looper对象                @Override                public void handleMessage (Message msg) {//3、定义处理消息的方法                    switch(msg.what) {                        case 1:                            Toast.makeText(getApplicationContext(), "MyThread is here", Toast.LENGTH_SHORT).show();break;                        case 2:                            Toast.makeText(getApplicationContext(), "MyThread is here2", Toast.LENGTH_SHORT).show();break;                        default:                    }                }            };            Looper.loop();//4、启动消息循环            for (;;);        }    }}


更多相关文章

  1. [置顶] android 中使用回调函数
  2. 自定义 Theme 改变 系统全局样式
  3. Android(安卓)使用自定义cursorAdapter
  4. Android(安卓)自定义漂亮的圆形进度条
  5. Android学习笔记(6)——Android——LoginDemo
  6. android之helloworld详解
  7. 【Android】Looper消息分发(msg.target.dispatchMessage), Handl
  8. android GPS HAL 回调函数实现
  9. 实现 Android(安卓)通知提示功能

随机推荐

  1. Android(安卓)SDL移植版学习笔记
  2. android中的汉字转拼音
  3. Windows 8(64位)如何搭建 Android(安卓)
  4. android学习3 进度条
  5. android 上下抽屉拖拽+动画完美实现
  6. android分页处理-3
  7. [Android(安卓)Pro] ant 编译android工程
  8. Android中短信拦截解决方案
  9. android view holder 优化
  10. android模块化开发