Android(安卓)多线程通信 Handler
16lz
2021-01-24
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 (;;); } }}
更多相关文章
- [置顶] android 中使用回调函数
- 自定义 Theme 改变 系统全局样式
- Android(安卓)使用自定义cursorAdapter
- Android(安卓)自定义漂亮的圆形进度条
- Android学习笔记(6)——Android——LoginDemo
- android之helloworld详解
- 【Android】Looper消息分发(msg.target.dispatchMessage), Handl
- android GPS HAL 回调函数实现
- 实现 Android(安卓)通知提示功能