美文网首页
消息机制

消息机制

作者: niudeyang | 来源:发表于2018-04-11 11:29 被阅读5次

消息机制

主线程创建后Looper.prepare创建lopper对象,创建looper的同时或创建消息队列
messagequeue,通过ThreadLocal与当前线程绑定,并把消息队列最为成员变量,创建handler对象的时候会从当前线程中获取loopper对象的消息队列,发送消息就是往消息对象中加入新消息,looper.loop开启死循环,从消息队列中查询到消息,交给hanlder的handmessage处理,当调用mHandler.getLooper().quit()时候死循环才会终止,明白上述原理我们可以在向子线程发送消息,不过android里的handler不是另外开启线程来执行的,还是在主UI线程中,如果想另启线程的话需要用到HandlerThread来实现。在使用HandlerThread的时候需要实现CallBack接口以重写handlerMessage方法,在handlerMessage方法中来处理自己的逻辑。下来给出一个小例子程序。

import android.os.HandlerThread;
import android.os.Looper;
import android.os.Message;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;

public class TestActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_test);

        MyHandlerThread handlerThread = new MyHandlerThread("子线程");
        handlerThread.start();

        Handler handler = new Handler(handlerThread.getLooper(), handlerThread);

        handler.postDelayed(() -> {
            Message message = handler.obtainMessage();
            message.arg1 = 1;
            message.sendToTarget();
        }, 3000);
    }

    class MyHandlerThread extends HandlerThread implements Handler.Callback {

        public MyHandlerThread(String name) {
            super(name);
        }

        @Override
        public boolean handleMessage(Message msg) {
            //打印线程的名称
            System.out.println(" handleMessage CurrentThread = " + msg.arg1 + Thread.currentThread().getName());
            return false;
        }
    }
}

2跨进程通信

广播 aidl messenger。。。看我的另外一篇文章
end

相关文章

  • Runtime

    相关简单介绍 消息机制消息传递机制消息转发机制-动态添加方法消息转发机制-快速转发消息转发机制-慢速转发消息转发机...

  • <> Chapter 10

    Android的消息机制 Android消息机制概述 Android的消息机制主要是指Handler的运行机制以及...

  • iOS消息转发机制

    消息转发机制: 消息转发机制是相对于消息传递机制而言的。 1、消息(传递)机制 RunTime简称运行时。就是系统...

  • OC消息机制,消息转发机制

    Runtime简称运行时,其中最主要的是消息机制 概述 C 与 OC 的不同 1.C 语言,函数的调用在编译的时候...

  • Runtime 你为何如此之屌?

    一、消息驱动机制 消息驱动机制: 运行的时候的一些机制,最主要的是消息机制。 消息驱动机制-动态调用过程 : 对于...

  • 08.Objective-C 消息机制

    问题 消息机制的三个阶段 1.消息机制发送消息阶段-消息发送2.消息机制动态方法解析阶段 -动态解析3.消息机制消...

  • 关于runtime的一些简单理解

    1.消息发送OC:运行时机制,消息机制是运行时机制最重要的机制消息机制:任何方法调用,本质都是发送消息 SEL:方...

  • runtime系列文章总结

    《iOS Runtime详解(消息机制,类元对象,缓存机制,消息转发)》《消息转发机制与Aspects源码解析》《...

  • 消息机制

    消息机制 主线程创建后Looper.prepare创建lopper对象,创建looper的同时或创建消息队列mes...

  • 消息机制

    阻塞/非阻塞;同步/非同步的概念往往不会分开说,经常会将他们组合到一起,比如:同步阻塞 或 同步非阻塞。 具体解析...

网友评论

      本文标题:消息机制

      本文链接:https://www.haomeiwen.com/subject/haeahftx.html