前一篇文章简单介绍了EventBus 3.0的用法,现在是时候详解其用法了。首先声明,EventBus 3.0的改动针对2.4的改动并不是特别大,但是对于其性能的提升是另外一个说法了,所以建议学习EventBus 3.0。 注解 新增的@Subscribe threadMode = ThreadMode.MainThread用注解的方式代替约定的方法名规范,是其最大的改变。在2.4中,你可能需要这
// 执行耗时操作 // ... // 发送消息到主线程 Message message = new Message(); message.what = 1; handler.sendMessage(message); }}).start(); // 在主线程中处理消息 Handler handler = new Handler(new Handler.
文章目录POSTING (默认值默认方式)MAINMAIN_ORDEREDBACKGROUNDASYNCPOSTING (默认值默认方式) 订阅者将在发布事
原创 2023-06-05 11:09:55
61阅读
一、Subscribe 注解属性、二、threadMode 线程模式 ( POSTING | MAIN | MAIN_ORDERED | BACKGROUND | ASYNC )、
原创 2022-03-08 09:33:01
636阅读
前言:很多人写项目都会用到EventBus,可以说解决了很多麻烦的事情,区区几行代码,就能解决四大组件的通信,异步线程和主线程之间的通信。这次主要介绍EventBus的4种线程模式:ThreadMode.MAIN(常用)、ThreadMode.POSTING、ThreadMode.BACKGROUND、ThreadMode.ASYNCEventBus的简单用法1.添加eventbus3.1.1依赖
1)添加引用 using System.Threading. 2)添加模式 ParamterizedThreadStat threadmode=new ParamterizedThreadStat (yourthreadfuction) 3)添加线程并启动 Thread my_thread=new Thread(threadmode); my_thread.start(yourargum
原创 2013-03-09 10:18:07
832阅读
EventBus ThreadMode:PostThread: Subscriber的calback和post在一个线程,默认设置. 这样可以减少线程切换的开销,也是对于
原创 2023-05-23 14:50:00
63阅读
-keepattributes *Annotation*-keepclassmembers class * { @org.greenrobot.eventbus.Subscribe <methods>;}-keep enum org.greenrobot.eventbus.ThreadMode { *; }# If using AsyncExecutord, keep requi
原创 2023-03-17 06:20:34
122阅读
什么是ThreadMode?ThreadMode翻译为中文即为“线程模式”。 每个事件处理程序方法都有一个线程模式,它确定EventBus调用该方法所在的线程。 EventBus专注于发布事务线程的独立性。线程模式分类POSTING消息订阅者将与发送者所处在同一线程中。这是默认值。该模式避免了线程切换所带来的开销。这是处理简单事务所推荐的模式。如果发布线程是主线程,使用该模式必须立即返回,以避免阻
转载 2024-07-11 07:55:37
27阅读
相关概念 定义 Android事件发布/订阅框架,简化应用程序内组件间,组件与后台线程间的通信; 优点 代码简洁,使用简单,将事件发布和订阅充分解耦; 五种ThreadMode POSTING(默认)
原创 2022-02-16 15:48:39
352阅读
1. 使用详解注册(最好在activity或者fragment中的onStart()方法以及onStop方法中注册)解绑,在对应的生命周期方法中。发送消息接收消息ThreadMode.MAIN 表示这个方法在主线程中执行。事件的处理会在UI线程中执行。事件处理时间不能太长,长了会ANR的。ThreadMode.BACKGROUND表示该方法在后台执行,不能并发处理.如果事件是在UI线程中发布出来的,那么该事件处理函数就会在新的线程中运行,如果事件本来就是子线程中发布出来的,那么该事件处理函数
原创 2022-01-15 13:52:17
126阅读
No1: EventBus三要素: 1)Event:事件 2)Subscriber:事件订阅者 3)Publisher:事件发布者 No2: EventBus的4种ThreadMode(线程模型): 1)POSTING(默认):该事件是在哪个线程发布出来的,事件处理函数就会在哪个线程中运行 2)MA
普通事件和粘性事件使用场景:普通事件:向现在创建了的activity中发送粘性事件:向还没有启动的activity发送1.普通事件的使用注册EventBus:onCreate()EventBus.getDefault().register(this);接收数据:ThreadMode.POSTING:默认使用该模式,表示该方法会在当前发布事件的线程执行 Thr