添加依赖
implementation 'org.greenrobot:eventbus:3.1.1'
public class HuaDongActivity extends Activity {

    private Button nianxing;
// 用来判断是否需要停止事件的继续分发
private boolean stopDelivery = false;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_hua_dong);
nianxing = findViewById(R.id.nianxing);
nianxing.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
stopDelivery = true;
EventBus.getDefault().postSticky(MessageWrap.getInstance("哈哈哈哈"));
}
});
EventBus.getDefault().register(HuaDongActivity.this); EventBus.getDefault().post(MessageWrap.getInstance("哈哈哈")); } @Override
protected void onDestroy() {
super.onDestroy();
EventBus.getDefault().unregister(this);
} /**
* 注册普通事件
* @param wrap
*/
@Subscribe(threadMode = ThreadMode.MAIN)
public void MyMessage(MessageWrap wrap){
Toast.makeText(this,wrap.message.toString(),Toast.LENGTH_LONG).show();
} /**
* 注册粘性事件
* 粘性事件表示,我可以直接发送,等到我想要接收的时候,我在订阅他
* @param message
*/
// @Subscribe(threadMode = ThreadMode.MAIN, sticky = true)
// public void onGetStickyEvent(MessageWrap message) {
// String txt = "Sticky event: " + message.message;
// Toast.makeText(this,txt,Toast.LENGTH_LONG).show();
// } @Subscribe(threadMode = ThreadMode.POSTING, priority = 0)
public void onGetMessage(MessageWrap message) {
Log.i("TAG","onGetMessage");
Toast.makeText(this,message.message,Toast.LENGTH_LONG).show();
} // 订阅方法,需要与上面的方法的threadMode一致,并且优先级略高
@Subscribe(threadMode = ThreadMode.POSTING, sticky = true, priority = 1)
public void onGetStickyEvent(MessageWrap message) {
Log.i("TAG","onGetStickyEvent");
String txt = "Sticky event: " + message.message;
Toast.makeText(this,txt,Toast.LENGTH_LONG).show();
if (stopDelivery) {
// 终止事件的继续分发
EventBus.getDefault().cancelEventDelivery(message);
}
}
}
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".HuaDongActivity"> <Button
android:id="@+id/nianxing"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="点击发送粘性事件"
/> </RelativeLayout> 参考自https://www.jianshu.com/p/e7d5c7bda783,感觉大佬!

Android EventBus使用大全的更多相关文章

  1. Android EventBus实战 没听过你就out了

    转载请表明出处:http://blog.csdn.net/lmj623565791/article/details/40794879,本文出自:[张鸿洋的博客] 1.概述 最近大家面试说经常被问到Ev ...

  2. Android扫盲教程大全经典教程全分享

    Android扫盲教程大全经典教程全分享,相当于android的简单用户手册下载路径 Android扫盲教程大全经典教程全分享.rar

  3. Android 对话框(Dialog)大全 建立你自己的对话框

    Android 对话框(Dialog)大全 建立你自己的对话框 原文地址: http://www.cnblogs.com/salam/archive/2010/11/15/1877512.html A ...

  4. Android EventBus源码解析 带你深入理解EventBus

    转载请标明出处:http://blog.csdn.net/lmj623565791/article/details/40920453,本文出自:[张鸿洋的博客] 上一篇带大家初步了解了EventBus ...

  5. android EventBus 的使用

    今天简单的介绍 一下啊 android  EventBus 的使用 EventBus 在官方介绍中是订阅......什么的 一大堆  ,  在我android 菜鸟眼里 就是用来代替android 广 ...

  6. Android EventBus源代码解析 带你深入理解EventBus

    转载请标明出处:http://blog.csdn.net/lmj623565791/article/details/40920453,本文出自:[张鸿洋的博客] 上一篇带大家初步了解了EventBus ...

  7. Android EventBus现实 听说你out该

    转载请注明出处:http://blog.csdn.net/lmj623565791/article/details/40794879.本文出自:[张鸿洋的博客] 1.概述 近期大家面试说常常被问到Ev ...

  8. Android EventBus 3.0 实例使用详解

    EventBus的使用和原理在网上有很多的博客了,其中泓洋大哥和启舰写的非常非常棒,我也是跟着他们的博客学会的EventBus,因为是第一次接触并使用EventBus,所以我写的更多是如何使用,源码解 ...

  9. Android uses-permission 权限大全

    Android uses-permission 权限大全 当编写某些程序时,你需要调用手机的某些功能 这时候你一定要记得启用相关的uses-permission, 很多网上贴出来的代码都不包含 Man ...

随机推荐

  1. 使用 Microsoft.Extensions.DependencyInjection 进行依赖注入

    没有 Autofac DryIoc Grace LightInject Lamar Stashbox Unity Ninject 的日子,才是好日子~~~~~~~~~~ Using .NET Core ...

  2. promise 和 async await比较

    async搭配await是ES7提出的,它的实现是基于Promise.这里使用它对比Promise的用法,这里只是简单的适合日常业务的使用场景.   async.await是ES7中的提案,通过同步方 ...

  3. setDefaultDllDirectories无法定位动态链接库kernel32.dll

    参考链接 : https://blog.csdn.net/gdali/article/details/93084828 https://tieba.baidu.com/p/5795675519?red ...

  4. python对不同类型文件(doc,txt,pdf)的字符查找

    python对不同类型文件的字符查找 TXT文件: def txt_handler(self, f_name, find_str): """ 处理txt文件 :param ...

  5. Bladex之Arhcer代码生成器

    代码生成器配置: 数据库表准备:Archer中增加对应的表:(参照test_notice和test_notice_list表)主表:SET FOREIGN_KEY_CHECKS=0; -- ----- ...

  6. SpringBoot配置热部署

    1.spring-boot-devtools 在pom中直接引入依赖 <dependency> <groupId>org.springframework.boot</gr ...

  7. [LeetCode] 769. Max Chunks To Make Sorted 可排序的最大块数

    Given an array arr that is a permutation of [0, 1, ..., arr.length - 1], we split the array into som ...

  8. nginx 移动端和pc端自动跳转

    场景 项 域名 描述 pc端 www.one.com 用于pc端访问官网 移动端 m.one.com 用于移动端访问 现在的需求是这样,在pc端访问www.one.com和m.one.com都跳转到w ...

  9. 如何优雅的使用telnet测试端口连通性

    telnet命令是TELNET协议的用户接口,它支持两种模式:命令模式和会话模式,虽然telnet支持许多命令,但大部分情况下,我们只是使用它查看目标主机是否打开了某端口(默认是23). 其执行结果有 ...

  10. 读Secrets of the JavaScript Ninja(一)函数

    理解JavaScript为什么应该作为函数式 在JavaScript中,函数是程序执行过程中的主要模块单元 函数是第一类对象 通过字面量创建 function ninjaFunction(){} 赋值 ...