zoukankan      html  css  js  c++  java
  • handler通信机制

     1 package com.example.gp08_day26_handler3;
     2 
     3 import android.os.Bundle;
     4 import android.os.Handler;
     5 import android.os.Looper;
     6 import android.os.Message;
     7 import android.app.Activity;
     8 import android.view.Menu;
     9 import android.view.View;
    10 
    11 /**
    12  * 主线程给子线程发消息
    13  * @author qq
    14  *
    15  */
    16 public class MainActivity extends Activity {
    17 
    18     private Handler handler;//需要在子线程中实例化
    19     @Override
    20     protected void onCreate(Bundle savedInstanceState) {
    21         super.onCreate(savedInstanceState);
    22         setContentView(R.layout.activity_main);
    23     }
    24 
    25     public void sendMessage(View v)
    26     {
    27         //点击按钮给子线程发消息
    28         Message msg = Message.obtain();
    29         msg.obj ="hello,你好!";
    30         //把Message对象放入handler内部的MessageQueue对象,而handler内部的MessageQueue引用指向的是 Looper中的MessageQueue
    31         handler.sendMessage(msg);
    32     }
    33     //创建子线程
    34     class MyThread extends Thread
    35     {
    36         public void run()
    37         {
    38             //需要先有Looper对象
    39             Looper.prepare();//会创建一个Looper对象,并把该对象放入到该线程的本地变量中,在Looper的构造方法中创建了MessageQueue对象
    40             //在子线程中实例化handler,子线程中没有Looper对象 
    41             
    42             // mQueue = mLooper.mQueue; handler内部的MessageQueue引用指向的是 Looper中的MessageQueue对象
    43             handler = new Handler();//如果直接实例化Handler,会异常 new RuntimeException,原因是子线程中没有Looper对象 
    44             
    45             //让Looper对象循环读取MessageQueue中的消息
    46             //循环从队列中读取消息,当读到消息时,回去调用   msg.target.dispatchMessage(msg);
    47             //在Message类中有一个target成员,当发送消息时,target成员被赋值为当前的 handler对象
    48             Looper.loop();
    49         }
    50     }
    51 
    52 }
    mainActivity
  • 相关阅读:
    loadrunner—事务、TPS
    loadrunner—集合点rendezvous
    loadrunner—web_submit_data
    阿里云的docker仓库登陆打标签
    linux 下安装git服务器
    解决mvn clean后打包错:Cannot create resource output directory
    eclipse中创建的spring-boot项目在启动时指定加载那一个配置文件的设置
    docker命令
    springboot所有pom依赖
    pthon小游戏
  • 原文地址:https://www.cnblogs.com/bimingcong/p/4822421.html
Copyright © 2011-2022 走看看