安卓系统JAVA应用消息驱动系统:Looper & Handler

一、消息驱动系统

安卓系统中的java应用程序和其他系统上相同,都是靠消息驱动来工作的。如下图:

  • 有一个消息队列,可以往这个消息队列中投递消息。
  • 有一个消息循环,不断从消息队列中取出消息,然后处理

这些工作在安卓中由Looper和Handler来实现。

 

二、Looper

Looper类使用案例:

class LooperThread extends Thread {
    public Handler mHandler;
    public void run() {
        Looper.prepare();
        Looper.loop();
    }
}

{
...
    new LooperThread().start();
}

函数调用流程:

Looper.prepare():生产一个Looper对象,存放的线程本地存储变量sThreadLocal中。

Looper.loop():获取sThreadLocal中的Looper,处理Looper消息队列中的消息。

Looper、MessageQueue、Message关系:

 

三、辅助类Handler

辅助类Handler的作用由两个:

1、提供封装好的API,方便使用者往Looper的消息队列中插入消息

(1)mQueue:Handler对应的消息队列

(2)mLooper:Handler对应的Looper

(3)mCallback:处理消息的回调

2、提供处理的封装.

(1)hasMessages(int what):判断消息队列中是否有对应的消息码

(2)obtainMessage(int what):创建一个消息
(3)removeMessages(int what):从消息队列中删除消息
(4)sendEmptyMessage(int what):发送一个只有消息号没有实际Message实体内容的消息到消息队列 
(5) sendMessage(Message msg):发送一个消息到消息队列
(6)sendMessageAtFrontOfQueue (Message msg):发送一个消息到消息队列,并且放在消息队列的最前面。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值