(原创)简单介绍Android的EventBus(下)
来源:互联网 发布:西安汇知中学四大恶霸 编辑:程序博客网 时间:2024/05/19 14:16
这是这个系列的最后一篇,主要讲讲EventBus的@Subscribe。
Subscribe主要有三个属性:
threadMode:声明事件订阅函数的执行模式
sticky:表示该事件订阅函数是否接收粘性事件,默认为false,表示不接收
priority:声明事件订阅函数的事件接收优先级,默认为0
第二、三个不用说了,今天就着重介绍第一个
threadMode仔细划分起来一共有四个模式
1、ThreadMode.PostThread
这个表示默认模式,表示该事件在哪个线程发布出来的,事件订阅函数就会在这个线程中运行,
也就是说发布事件和接收事件线程在同一个线程。
注意:使用这个方法时,在事件订阅函数中不能执行耗时操作,如果执行耗时操作容易导致事件分发延迟。
2、ThreadMode.MainThread
这个表示UI线程模式,不论事件是在哪个线程中发布出来的,事件订阅者都会在UI线程中执行,接收事件就会在UI线程中运行。
这个在Android中是非常有用的,因为在Android中只能在UI线程中跟新UI,所以在该模式表示的时间订阅函数中是不能执行耗时操作的。
3、ThreadMode.BackgroundThread
子线程执行模式,如果事件是在UI线程中发布出来的,那么事件订阅函数就会在子线程中运行,
如果事件本来就是子线程中发布出来的,那么事件订阅函数直接在该子线程中执行。
4、ThreadMode.Async
强制子线程模式,表示无论事件在哪个线程发布,都会创建新的子线程来执行事件订阅函数
最后讲一讲取消时间订阅
先执行的订阅函数可以取消事件订阅,后面的事件订阅函数将无法收到发布事件,方法如下:
EventBus.getDefault().cancelEventDelivery(event);
关于EventBus的基本讲解就到这里了,谢谢。
- (原创)简单介绍Android的EventBus(下)
- (原创)简单介绍Android的EventBus(上)
- (原创)简单介绍Android的EventBus(中)
- Android 之 EventBus(一)简单介绍
- Android EventBus简单介绍(一)
- Android EventBus简单介绍(二)
- EventBus使用的简单介绍
- EventBus 《二》 Android EventBus的简单使用
- Android--EventBus的使用介绍
- Android EventBus的简单使用
- Android EventBus的简单使用
- android EventBus的简单使用
- Android EventBus 的简单使用
- Android框架之EventBus的简单使用
- Android之EventBus的简单使用
- Android开发EventBus最简单的使用
- Android EventBus 介绍
- android EventBus基础介绍
- Android 系列 4.7发送/接收广播消息
- Git Subtree 的使用
- java判断字符串中某字符出现的位置,并替换指定指定内容
- 蓝桥杯入门训练C语言
- # -*- coding: utf-8 -*- print u"脚本名:", sys.argv[0]
- (原创)简单介绍Android的EventBus(下)
- 如何规范 CSS 的命名和书写?
- SQL pivot unpivot
- java几种常见的数据库连接
- ubuntu下 python链接mysql
- CentOS7.2下安装pdf2htmlEX
- Linux文档格式乱码与转换
- leetcode 476. Number Complement
- spring boot入门