EventBus 详细使用教程[在Activity、Service、Receiver中Post]
来源:互联网 发布:ios刷机会丢失数据吗 编辑:程序博客网 时间:2024/06/16 21:26
添加EventBus
compile 'de.greenrobot:eventbus:2.4.0'
或
直接下载jar包 |点击下载
注册和注销EventBus
@Override protected void onStart() { super.onStart(); //注册EventBus EventBus.getDefault().register(this); Logger.e("EventBus注册"); } @Override protected void onStop() { super.onStop(); //注销EventBus EventBus.getDefault().unregister(this); Logger.e("EventBus注销"); }
自定义消息类型
public class MessageEvent { public String message; public MessageEvent(String message){ this.message=message; }}
创建消息接受
//接受消息的地方(在Android的UI线程中) public void onEventMainThread(MessageEvent event) { Logger.e("onEventMainThread"+event.message); tv_demo.setText(event.message); }
Post消息
1.在子线程中给Activity发消息更新UI
class MyThread extends Thread{ @Override public void run() { //发送消息 EventBus.getDefault().post(new MessageEvent("这是EventBus发送的消息更新UI")); } };
2.在Service中发消息给Activity更新UI
public class MyService extends Service { public static final String ACTION_START="ACTION_START"; @Override public IBinder onBind(Intent intent) { return new Binder(); } @Override public int onStartCommand(Intent intent, int flags, int startId) { if(ACTION_START.equals(intent.getAction())){ new MyServerThread().start(); } return super.onStartCommand(intent, flags, startId); } class MyServerThread extends Thread{ @Override public void run() { EventBus.getDefault().post(new MessageEvent("这是在MyService的MyServerThread线程中Post的消息")); } }}
3.在Receiver中发送消息给Activity更新UI
public class MyBroadcastReceiver extends BroadcastReceiver{ public static final String ACTION_SEND="ACTION_SEND"; @Override public void onReceive(Context context, Intent intent) { if (ACTION_SEND.equals(intent.getAction())){ EventBus.getDefault().post(new MessageEvent("这是在[广播]中给Activity发送消息")); } }}
github地址 | 欢迎Star
2 0
- EventBus 详细使用教程[在Activity、Service、Receiver中Post]
- EventBus 详细使用教程[在Activity、Service、Receiver中Post],eventbusreceiver
- EventBus 详细使用教程[在Activity、Service、Receiver中Post](精简版)
- EventBus在Activity、Fragment、Service中的使用
- Activity-Service-Receiver-Provider
- Android 在 (Activity service application receiver) 中读取<meta-data>元素的数据
- Activity,Service,Receiver共用Handler
- 在Service中显示Activity
- Android Activity& service&Broadcast receiver 生命周期
- Activity、Broadcast Intent Receiver、Service、Content Provider
- Intent:异步消息(Activity-Service-Receiver)
- 在 Android 中使用 Activity, Service, Broadcast, BroadcastReceiver
- 在Activity和Service通讯中使用LocalBroadcastManage
- android学习笔记---60_meta-data的使用,在清单文件中是用<meta-data>来给activity,service,receiver提供参数
- Android中Activity与Service通信——Broadcast、Receiver、Intent、Bundle
- Android中Activity与Service通信——Broadcast、Receiver、Intent、Bundle
- Android中有四大组件activity、service、content provider、broadcast receiver
- 使用EventBus在Activity与BroadcastReceiver之间进行通信
- java读取.properties配置文件 (2
- 利用javaApI【eclipse】操作HBase时,出现异常的解决方案
- 你用过这种奇葩的C#注释吗?如何看待
- 黑马程序员-----block
- linux oracle CPU访问过高 问题
- EventBus 详细使用教程[在Activity、Service、Receiver中Post]
- IOS学习 模拟UIView的hitTest:方法和pointInside:方法的实现
- freopen - C/C++文件输入输出利器
- c语言设置qnx系统时间
- jquery ajax && php foreach array
- a标签传递当前对象
- ssh自动输入密码登录服务器/ssh免输入密码登录/非交互ssh 密码验证
- C语言中输入输出重定,freopen()妙用。
- Java面试问题和答案(三)