Android 三方框架之EventBus使用

鸿蒙NEXT开发——组件通信实现流程 为了实现鸿蒙组件之间的通信,我们可以使用事件总线机制。事件总线是一种将组件之 间的通信解耦的方式,使得组件之间可以独立地发送和接收消息。下面是实现鸿蒙组件通信的步骤:1.在应用的build.gradle文件中添加依赖2.创建事件总线类3.发送消息4.接收消息。 阅读详情

1、EventBus三方框架运用广泛,是Android端优化的publish/subscribe消息总栈,简化了应用程序内各组件间、组件与后台线程间的通信,比如请求网络,等网络返回时通过Handler或者Broadcast通知UI,两个Fragment之间需要通过Listener通信,这些需求都可以通过EventBus实现;

2、EventBus使用步骤:

a在app项目的build.gradle中添加三方库:

implementation 'org.greenrobot:eventbus:3.0.0'

在注册EventBus之前有个通用EventBusUtils工具类,可以直接使用:

package com.example.myapp.utils;

import org.greenrobot.eventbus.EventBus;

public class EventBusUtils {
    public static void register(Object o){
        if(!EventBus.getDefault().isRegistered(o)){//加上判断
            EventBus.getDefault().register(o);
        }
    }

    public static void unregister(Object o){
        if(EventBus.getDefault().isRegistered(o)) {//加上判断
            EventBus.getDefault().unregister(o);
        }
    }
    public static void post(Object o){
        EventBus.getDefault().post(o);
    }
}

b注册EventBus

在BaseActivity.java类中OnCreate方法中进行注册

// 注册EventBus
        EventBusUtils.register(MainActivity.this);

c反注册EventBus

在BaseActivity.java类中OnDestory方法中进行反注册

// 反注册EventBus
        EventBusUtils.unregister(this);

d构造发送消息的类(可以理解为bean对象)

写出get和set方法,还有带有参数的构造函数

package com.example.myapp.event;

import java.io.Serializable;

/**
 * Created by mike.
 * Created on 2020/3/9.
 */
public class MessageEvent implements Serializable {

    private static final long serialVersionUID = 8578568521489221892L;
    private String name;

    public MessageEvent(String name) {
        this.name = name;
    }

    @Override
    public String toString() {
        return "MessageEvent{" +
                "name='" + name + '\'' +
                '}';
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }
}

e注意的是注册和反注册,还有接收消息是在同一个界面中

接收消息需要添加订阅注解,并且是运行在主线程中

 // 接收消息
    @Subscribe(threadMode = ThreadMode.MAIN)
    public void MessageEventBus(MessageEvent messageEvent){
        // 接收到消息
        String name = messageEvent.getName();

    }

d发送消息是在第二个页面

通过

EventBusUtils.post(new MessageEvent("主线程发送过来的数据"));

进行发送消息,并且需要finish当前页面,此时,在第一个页面中就能接收到第二个页面发送过来的消息,在第一个页面中对返回过来的数据进行处理;

 

 

 

 

 

 

 

 

 

ANSYS APDL 异类单元连接实战:MPC方法在壳-实体装配中的应用 本文详细介绍了在ANSYS APDL中使用MPC方法实现壳单元与实体单元高效连接的技术要点。通过分析工程仿真中的常见需求,阐述了MPC方法在解决异类单元连接问题上的优势,包括网格独立性、自由度耦合和载荷传递等特性,并提供了具体的APDL命令流操作示例和实用经验技巧。 阅读详情

相关推荐

ATGM332D模块串口配置保姆级教程:从9600波特率到NMEA数据过滤,一次搞定

本文提供ATGM332D模块串口配置的详细教程,涵盖从基础硬件连接到高级NMEA数据过滤的全过程。内容包括波特率优化、数据输出频率调整、NMEA语句过滤等实用技巧,帮助开发者快速掌握GNSS模块配置,提升定位系统性能。

weixin_30664051的博客 513

锦囊篇|一文摸懂EventBus

使用方法 在app下的build.gradle的dependencies中进行引入,当然高版本也容易出现问题。 implementation 'org.greenrobot:eventbus:3.2.0' 使用三步骤: (1) 定义事件 public class MessageEvent { public final String message; public MessageEvent(String message) { this.message = message.

weixin_40697077的博客 460

STM32F429移植LVGL9.3.0:从源码配置到双缓冲优化实战

本文详细介绍了如何在STM32F429平台上移植LVGL 9.3.0图形库,涵盖从源码准备、工程配置、显示驱动适配到双缓冲优化等关键步骤。重点解析了利用STM32F429的硬件特性实现高效内存管理和流畅显示性能的实战技巧,为嵌入式GUI开发提供完整解决方案。

q6r7s8t9的博客 1144

EventBus 3.0 事件公交车

EventBus 3.0 使用方法以及使用过程中遇到的一些问题 嗯~本人为Android萌新程序猿一枚 这是我在博客写的第一篇文章,怀着忐忑的心情终于落笔了 各位来自天南海北的再生父母们,喜欢的话可以加个关注,点个赞(能打赏的话那真的是给您磕头了),谢谢铁汁???? 好了,废话不多说,直接开冲 EventBus简介 EventBus是一个Android端优化的publish/subscribe消息总线,简化了应用程序内各组件间、组件与后台线程间的通信。比如请求网络,等网络返回时通过

weixin_45065275的博客 1098

高效网络流量回放:使用tcpreplay实现多目标IP的pcap重放

本文详细介绍了如何使用tcpreplay工具高效回放网络流量pcap文件,并实现多目标IP发送。通过tcprewrite编辑报文和并行回放策略,可满足安全测试、负载测试等场景需求。文章涵盖安装、基础回放、核心技巧及性能优化,帮助读者构建真实流量压力测试环境。

weixin_29297127的博客 481

ADS1293心电图模块实战:从电极贴片到信号采集的全流程指南

本文提供了一份基于TI ADS1293芯片的心电图采集系统全流程实战指南。文章深入探讨了从电极贴片选择与皮肤预处理、ADS1293前端配置(包括PGA、RLD和威尔逊网络),到PCB布局、电源去耦以及固件滤波与运动伪影处理等关键环节,旨在帮助硬件工程师和嵌入式开发者构建稳定可靠的可穿戴心电监测设备。

weixin_29201313的博客 387

Android EventBus总结

EventBus是一种用于Android的事件发布-订阅总线,用于简化各模块之间的通信。 普通事件 粘性事件

xiangxiongfly 1048

解读文献(五)------基于阻抗控制

文章目录背景主动柔顺控制阻抗控制基于力的阻抗控制基于位置的阻抗控制力位混合控制 背景 主动柔顺控制 阻抗控制 基于力的阻抗控制 基于位置的阻抗控制 力位混合控制 ...

accumulation 1万+

EventBus使用详解(一)——初步使用EventBus

前言:EventBus是上周项目中用到的,网上的文章大都一样,或者过时,有用的没几篇,经过琢磨,请教他人,也终于弄清楚点眉目,记录下来分享给大家。 相关文章: 1、《EventBus使用详解(一)——初步使用EventBus》 2、《EventBus使用详解(二)——EventBus使用进阶》 一、概述 EventBus是一款针对Android优化的发布/订阅事件总线。主要功...

启舰 43万+

宇树科技嵌入式面试题及参考答案(春晚机器人的公司)

内存对齐是指在内存中为数据对象分配存储空间时,按照一定的规则将数据存储在特定的地址上,以提高内存访问效率。不同的数据类型在内存中都有其特定的对齐要求,例如,int类型通常要求 4 字节对齐,double类型通常要求 8 字节对齐。这意味着数据的存储地址必须是其对齐字节数的整数倍。如果不进行内存对齐,处理器在访问数据时可能需要进行多次内存访问,从而降低了访问效率。指令可以用于控制结构体内存布局,它允许程序员指定结构体成员的对齐方式。其基本用法是在结构体定义之前使用来指定对齐字节数n,其中n。

大模型大数据攻城狮的专栏 3228

Allegro16.6详细教程(二)

3-D Viewer,可以直接在allegro中看到board file的3-D顯示效果。3-D Viewer對於PCB Editor Products,只有環境變數中的OpenGL顯示功能開啟後才有效,而對於APD/SiP是無效的。2.3-D viewer是在一個獨立的視窗中打開的。3-D environment環境支援多種顯示內容的過濾,取景視角和顯示效果的選項,透過遊標可以直接控制放大,移動,翻轉等操作。

axingxiansen的博客 1922

Android第三方框架EventBus使用详解

EventBus使用详解(一)——EventBus核心内容 目录 概述实战 基本框架搭建新建一个类FirstEvent在要接收消息的页面注册EventBus发送消息接收消息 一、概述 当一个Android应用功能越来越多的时候,保证应用的各个部分之间高效的通信将变得越来越困难。所以为了解决这个问题,EventBus应运而生! EventBus是一款针对Android

FynnJason的技术屋 1351

STM32 cubeMX配置串口重定向

这篇文章主要讲解什么是串口重定向,为什么要串口串口重定向。使用printf函数和上位机通信是非常的方便的。希望大家都能够掌握。

m0_49476241的博客 4573

EventBus和Otto第三方构架

EventBus和Otto第三方框架 EventBus EventBus能够简化各组件间的通信,让我们的代码变得简单,能有效的分离事件发送方和接收方 EventBus三大要素 Event 事件 它可以是任意类型 Subscriber 事件订阅者 Publisher 事件的发布者 EventBus四种线程模型 POSTING (默认) 表示事件处理函数的线程跟发布事件的线程在同一个线程。 MA...

caoqijia123的博客 363

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

day12-13BroadcastReceiver广播、EventBus

广播分类: (1).无序广播:sendBroadcast() (2).有序广播:sendOrderBroadcast() (3).粘性广播:sendStickyBroadcast()(现已经很少使用) 有序广播: public class MainActivity extends AppCompatActivity { Button btn1; MyReceiver myRece...

weixin_44419661的博客 248

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

Android MVI框架的使用

AndroidMviFrame 是一个Android简单易用的项目框架。

jhonjson的博客 1175

Android 第三方框架使用及原理解析

各种原理,经典第三方库源码系列 自定义LayoutManager,RecyclerView中如何自定义LayoutManager VLayout实现原理,即如何自定义LayoutManager Glide加载原理,缓存方案,LRU算法 Retrofit的实现与原理 OKHttp3的使用,网络请求中的Intercept EventBus实现原理 ButterKnife实现原理 RxJava实现原理 Dagger依赖注入 热修复实现原理,解决方案 组件化原理和解决方案 Android WebView独立进

分享Android应用和系统开发、音视频编码、性能优化相关知识 978

一口气拿了9家公司的offer,附小技巧

开头 在Android开发当中,相信大家对第三方库的重要性是无需多说的,尤其是三方库源码更是重中之重,而EventBus源码就属于其中的一个重点。 EventBus是安卓(Java中也可以用)开发中非常流行的一个第三方库,是一种发布/订阅事件的总线. 想必每个入了门的Android开发者都多少对EventBus有过了解,EventBus是一个Android事件发布/订阅框架,通过解耦发布者和订阅者简化 Android 事件传递。EventBus使用简单,并将事件发布和订阅充分解耦,从而使代码更简洁。一直以来

m0_56259515的博客 111

android 快速开发,GitHub - limedroid/XDroid: 轻量级Android快速开发框架

#XDroid 轻量级的Android快速开发框架概述XDroid是一个轻量级的Android快速开发框架,由UI、Cache、Event、ImageLoader、Kit、Log、Router、Net等几个部分组成。其设计思想是使用接口对各模块解耦规范化,不强依赖某些明确的三方类库,使得三方类库可自由搭配组装,方便替换。可快速、自由的进行App开发。Demo详细使用可参看DemoXDroid-Ba...

weixin_39758041的博客 342

安卓 开发笔记目录

安卓 开发笔记index 移动端开发 安卓基础   Fragment总结   安卓 BroadcastReceiver笔记   安卓 Notification-通知总结 基础工具类   安卓工具类-GsonUtils   安卓 多线程下载文件 开发环境/工具   ADB command 开源框架笔记   安卓 okhttp小结   EventBus框架总结   安卓 ...

weixin_30555515的博客 78

ndk开发!我阿里P7了解到的Android面试的一些小内幕!使用指南

开头 在Android开发当中,相信大家对第三方库的重要性是无需多说的,尤其是三方库源码更是重中之重,而EventBus源码就属于其中的一个重点。 EventBus是安卓(Java中也可以用)开发中非常流行的一个第三方库,是一种发布/订阅事件的总线. 想必每个入了门的Android开发者都多少对EventBus有过了解,EventBus是一个Android事件发布/订阅框架,通过解耦发布者和订阅者简化 Android 事件传递。EventBus使用简单,并将事件发布和订阅充分解耦,从而使代码更简洁。一直以来

Sunbuyi的博客 107

2020年大公司面试官最常问31道Android基础题

AIDL是使用bind机制来工作。参数:java原生参数Stringparcelablelist & map 元素 需要支持AIDLinitView();关键是canvas.drawCycle & paint.setsytle(stoken)参考链接。

2401_89609629的博客 930

2020年大公司面试官最常问31道Android基础题+压轴题+高频题

AIDL是使用bind机制来工作。参数:java原生参数Stringparcelablelist & map 元素 需要支持AIDLinitView();关键是canvas.drawCycle & paint.setsytle(stoken)[外链图片转存中…(img-b41r4HDa-1734615176093)]参考链接。

2401_89686567的博客 557

android 严振杰权限管理,MyAndroidFrameWork

MyAndroidFrameWork注意: 这是 Androidx 版, 非Androidx版本在这儿(非Androidx版本不再维护)Androidx版本能很好向下兼容, 包括jar包依赖也能自动转换, 所以建议转换成Androidx.安卓常用组件&框架(懒得每次都搭架子...)1.集成框架包括如下列表, 具体见 build.gradle://https://github.com/goo...

weixin_30780735的博客 428

Android组件之间的通信

1.三大组件之间:Activity, Services,Broadcast receivers 的通信是通过intents传递。2.Activity 和 activity之间:通过方法startActivity()可以从一个activity中开启另外一个activity。Intent intent = new Intent(this, SignInActivity.class); startActi

huang_xiao_yu的博客 661

Android 项目 笔记

1 关于全面屏与刘海屏,沉浸式状态栏配置相关 ImmersionBar 2

u014105655的博客 1862

代码混淆

代码混淆

枸杞泡水的博客 340
上一篇: Android之Activity startActivityForResult和setResult方法解析
下一篇: 如何将本地代码第一次上传到gitee(码云) + sourcetree
fyldragonfyl
博客等级 码龄12年 9粉丝 68原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值