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直接导入如下
还没有评论,来说两句吧...