Android消息传递机制的理解(Handler类)

Handler类的概述

Android系统是通过Looper、Handler来实现消息的循环机制。消息循环是针对于多线程的,每个线程都可以有自己的消息队列和消息循环。其中:

Looper类负责管理消息队列和消息循环

Handler类负责把消息加入特定的Looper的消息队列中,并处理该消息队列中的消息

Handler类的应用场所:需要进行延时处理的场合

       ①某些不需要实时显示的,可以先放到消息队列中(例如弹出提示信息,更新UI等)

       ②在一个子线程中去创建一个Handler,然后使用这个handler实例在任何其他线程中发送消息,最终处理消息的代码都会在你创建Handler实例的线程中运行(例如线程间的通信 :Handler+Message)

Handler类常用的方法

handleMessage(Message  msg) 子类对象通过该方法接受信息
sendEmptyMessage(int   what) 发送只有一个what值得消息
sendMessag(Message what) 发送消息的Handler,通过handleMessage()方法接受
post(Runnable r) 将一个线程添加到消息队列中

开发带有Handle类的程序步骤如下:

①在Activity或Activity的Widget中创建Handler对象,并重写handlemessage()方法;

②在onCreate()主线程创建一个新线程,并调用sendMessage()或sendEmptyMessage()方法向Handle发送消息;

③在Handler类的对象中用handleMessage()方法接受信息,根据不同的消息执行不同的操作;

利用handle类开发的实用案例

(利用Handler实现更新进度条、定时处理、获取网页内容、主线程与分线程之间的消息传递)

案例链接:https://github.com/xschao/Handle.git

环境:AndroidStudio3.3.2直接导入如下

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章