Android EventBus 传递消息

执行狂
• 阅读 7307

挺好用的 试了一下在 Activity 和 Service 里面传递消息

public class MyService extends Service {

    @Override
    public IBinder onBind(Intent intent) {
        throw new UnsupportedOperationException("Not yet implemented");
    }

    @Override
    public int onStartCommand(Intent intent, int flags, int startId) {
        //三个参数分别是,消息订阅者(接收者),接收方法名,事件类
        EventBus.getDefault().register(this, "test", TestEvent.class);
        return super.onStartCommand(intent, flags, startId);
    }

    public void test(TestEvent event) {
        Log.e("e", "e");
    }
}
        startService(new Intent(MainActivity.this, MyService.class));
        findViewById(R.id.button).setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                EventBus.getDefault().post(new TestEvent());
            }
        });

register之后就可以post了

点赞
收藏
评论区
推荐文章
Wesley13 Wesley13
4年前
android Activity之间的参数传递
在开发web程序的时候,我们都知道web页面之间是可以传递参数的,在android中,每一个activity就相当于一个页面(窗口),当然,它也是可以传递参数的。思路:通过Intent激活组件(Activity),附带数据Intent(意向):一:通过Intent对象可以激活组件activity,具体有五种方式:方式1:
Stella981 Stella981
4年前
Android消息总线的演进之路:用LiveDataBus替代RxBus、EventBus
背景对于Android系统来说,消息传递是最基本的组件,每一个App内的不同页面,不同组件都在进行消息传递。消息传递既可以用于Android四大组件之间的通信,也可用于异步线程和主线程之间的通信。对于Android开发者来说,经常使用的消息传递方式有很多种,从最早使用的Handler、BroadcastReceiver、接口回调,到近几年流行的通
Stella981 Stella981
4年前
Android中的常见通信机制和Linux中的通信机制
HandlerHandler是Android系统中的一种消息传递机制,起作用是应对多线程场景。将A进程的消息传递给B线程,实现异步消息处理。很多情况是将工作线程中需要更新UI的操作消息传递给UI主线程,而实现更新UI操作。因为工作线程和主线程是共享地址空间,即Handler实例对象mHandler位于线程间共享的内存堆上,工作线程和主线
Stella981 Stella981
4年前
Android Activity间跳转与传递数据
1概述Activity之间的跳转主要使用startActivity(Intentintent);startActivityForResult(Intentintent,intrequestCode);这两个函数,传递数据的话利用Intent进行传递,负责数据需要配合Bundle使用.这篇文章讲述了如何
Stella981 Stella981
4年前
Rxjava和EventBus对比
总的来说,EventBus是一款针对Android优化的发布/订阅事件总线,主要功能是替代Intent,Handler,BroadCast在Fragment,Activity,Service,线程之间传递消息。而Rxjava则是一种基于异步数据流的处理方案。如果一个订阅者需要注册多个事件的时候,Rxjava需要一个个单独的注册,而EventBus则可以实现一
Stella981 Stella981
4年前
EventBus源码分析
一、        EventBus简介1.1、EventBusEventBus是一个Android事件发布/订阅框架,通过解耦发布者和订阅者简化Android事件传递,这里的事件可以理解为消息,本文中统一称为事件。事件传递既可用于Android四大组件间通讯,也可以用户异步线程和主线程间通讯等等。传统的事件
Stella981 Stella981
4年前
Android原生和H5交互;Android和H5混合开发;WebView点击H5界面跳转到Android原生界面。
当时业务的需求是这样的,H5有一个活动商品列表的界面,IOS和Android共用这一个界面,点击商品可以跳转到Android原生的商品详情界面并传递商品ID; 大概就是点击H5界面跳转到Android原生界面;好了,需求已经分析完毕了,Android只需要获取H5的点击事件和传递的参数;来,上代码:/启用支持javascript
Easter79 Easter79
4年前
SpringMvc接受特殊符号参数被转义
WEB开发时,在前端通过get/post方法传递参数的时候 如果实参附带特殊符号,后端接收到的值中特殊符号就会被转义例如该请求: http://localhost:10001/demo/index.do?name张三(1)注:中文()不会出现此种情况后台就收到的实际name值为:  张三&40;1&41;&40;其实为h
Wesley13 Wesley13
4年前
Unity横屏
Android下发现Unity里面的Player设置,并不能完全有效,比如打开了自动旋转,启动的时候还是会横屏,修改XML添加以下代码<applicationandroid:icon"@drawable/ic\_launcher"                    android:label"@string/app\_name"
Stella981 Stella981
4年前
PhoneGap使用PushPlugin插件实现消息推送
概括    Android设备通过GCM服务来接收推送消息,而iOS设备这从苹果的APN服务获取。虽然按照负载来说这是两种不同的服务,但是证书都在从第三方接收消息的时候是需要作为一个存储和转发类型的服务。辨别接收者并传递下去。在接受端,你的应用已经注册来接收他们,并检查返回内容和相应的操作。消息的接收方式是应用代码里的注册和用户设备关于消息设定的融合
Stella981 Stella981
4年前
Android里面所说的Looper
Looper即:有消息循环的线程。在Android里线程分为有消息循环的线程和没有消息循环的线程,有消息循环的线程一般都会有一个Looper,这个事android的新概念。主线程(UI线程)就是一个消息循环的线程。针对这种消息循环的机制,引入一个新的机制Handle,有消息循环,就要往消息循环里面发送相应的消息,自定义消息一般都会有对应的处理,消