Handler系列-消息屏障

1.调用postSyncBarrier插入target为null的Message

这种消息为屏障消息,返回token,通过token可以移除这个屏障消息

public final class MessageQueue {
    public int postSyncBarrier() {
        return postSyncBarrier(SystemClock.uptimeMillis());
    }


    private int postSyncBarrier(long when) {
        // Enqueue a new sync barrier token.
        // We don't need to wake the queue because the purpose of a barrier is to stall it.
        synchronized (this) {
            final int token = mNextBarrierToken++;
            //创建的Message target为null
            final Message msg = Message.obtain();
            msg.markInUse(); //放入链表之前
            msg.when = when;
            msg.arg1 = token;

            Message prev = null;
            Message p = mMessages;
            //在链表里,替when找到合适的位置
            if (when != 0) {
                while (p != null && p.when <= when) {
                    prev = p;
                    p = p
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值