EventBus四种线程模式

    EventBus是我们在项目开发时常用的进程通信组件,其功能与广播类似,发送通知后改变UI或者进行其他的逻辑操作。在接收消息是有四种线程模式:POSTING、  MAIN、  BACGROUND、  ASYNC。

1.POSTING:这个模式是EventBus默认的线程模式,跟发送消息是在同一个线程中,如果是在主线程发送的消息,接收也在主线程,如果是在子线程中发送的消息,那么接收也在同一个子线程中。

@Subscribe(threadMode = ThreadMode.POSTING)
    public void onMessageReceive(EventBusBean<String> event) {
        if (event != null) {
            Log.i(TAG, event.getMessage());
        }
    }

2.MAIN:这个模式是无论发送消息是在主线程还是子线程,接收消息永远都在主线程当中。进行UI操作

    @Subscribe(threadMode = ThreadMode.MAIN)
    public void onMessageReceive(EventBusBean<String> event) {
        if (event != null) {
            Log.i(TAG, event.getMessage());
        }
    }

3.BACGROUND:接收消息永远在子线程中,如果发送消息是在主线程中,则新开辟新的子线程来接收消息,如果发送消息是在子线程中,则接收消息是在同一子线程中。

    @Subscribe(threadMode = ThreadMode.BACKGROUND)
    public void onMessageReceive(EventBusBean<String> event) {
        if (event != null) {
            Log.i(TAG, event.getMessage());
        }
    }

4.ASYNC:接收消息永远在独立的子线程中,无论发送消息是在主线程还是子线程中都会新开辟新的子线程来接收消息。

    @Subscribe(threadMode = ThreadMode.ASYNC)
    public void onMessageReceive(EventBusBean<String> event) {
        if (event != null) {
            Log.i(TAG, event.getMessage());
        }
    }
总结:这四种线程模式可根据具体业务需求来选择使用,在项目当中,使用最多的是MAIN来更新UI操作。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值