EventBus简单使用

简介: EventBus简单使用

github:https://github.com/greenrobot/EventBus/

compile 'org.greenrobot:eventbus:3.0.0'

EventBus使用起来可以说是非常简单,而且是轻量级的,目前github的start已经15k+了


根据官网说明,只需要三步即可完成事件通知


1.注册、移除注册


建议放在onCreate和onDestory中,因为跳转的话会走onStop,再通知的话会出现接收不到消息的情况,虽然可以用postSticky,但是能避免的为什么不避免呢

@Override
 public void onCreate() {
     super.onStart();
     EventBus.getDefault().register(this);
 }
 @Override
 public void onDestory() {
     super.onStop();
     EventBus.getDefault().unregister(this);
 }


2.发布消息

只需要一行代码,非常简便

EventBus.getDefault().post("SecondActivity发起的通知");


3.重写方法接收参数


@Subscribe
    public void onEventMainThread(String event) {
        mTextView.setText(event);
        Toast.makeText(this, event, Toast.LENGTH_SHORT).show();
    }


到这里一个通知就完了。。

重写的方法要加上@Subscribe才行


也可以这样写

@Subscribe(threadMode = ThreadMode.MAIN)

直接指定方法执行的线程



ThreadMode有四种

1 ThreadMode: POSTING
2 ThreadMode: MAIN
3 ThreadMode: BACKGROUND
4 ThreadMode: ASYNC
目录
相关文章
|
对象存储 开发者
对象OSS生命周期(LifeCycle)管理功能|学习笔记
快速学习对象 OSS 生命周期(LifeCycle)管理功能
3271 0
对象OSS生命周期(LifeCycle)管理功能|学习笔记
|
前端开发 JavaScript
纯CSS实现四种方式文本反差色效果
纯CSS实现四种方式文本反差色效果
483 0
纯CSS实现四种方式文本反差色效果
|
机器学习/深度学习 并行计算 PyTorch
使用PyTorch Profiler进行模型性能分析,改善并加速PyTorch训练
加速机器学习模型训练是工程师的关键需求。PyTorch Profiler提供了一种分析工具,用于测量CPU和CUDA时间,以及内存使用情况。通过在训练代码中嵌入分析器并使用tensorboard查看结果,工程师可以识别性能瓶颈。Profiler的`record_function`功能允许为特定操作命名,便于跟踪。优化策略包括使用FlashAttention或FSDP减少内存使用,以及通过torch.compile提升速度。监控CUDA内核执行和内存分配,尤其是避免频繁的cudaMalloc,能有效提升GPU效率。内存历史记录分析有助于检测内存泄漏和优化批处理大小。
1707 1
|
Unix Linux Shell
Linux系统之mkdir与rmdir命令的基本使用
Linux系统之mkdir与rmdir命令的基本使用
286 1
Linux系统之mkdir与rmdir命令的基本使用
|
Java 数据库 Spring
SpringDataJpa(三)(下)
SpringDataJpa(三)(下)
52 0
|
存储 SQL Java
Java8 Stream API 详解:流式编程进行数据处理
Java8 Stream API 详解:流式编程进行数据处理
|
设计模式 安全 调度
设计模式——单例模式(面试手撕顶呱呱)
设计模式——单例模式(面试手撕顶呱呱)
|
设计模式 领域建模
DDD的模式与实践案例(1)
DDD的模式与实践案例(1)
1170 0
DDD的模式与实践案例(1)
|
存储 JavaScript 前端开发
【没对象怎么办?JavaScript-带你找对象】对象是什么,对象能干嘛,对象该怎么用,本篇带你了解js中的对象。
【没对象怎么办?JavaScript-带你找对象】对象是什么,对象能干嘛,对象该怎么用,本篇带你了解js中的对象。
293 0
【没对象怎么办?JavaScript-带你找对象】对象是什么,对象能干嘛,对象该怎么用,本篇带你了解js中的对象。