股票场内基金交易,没时间盯盘?
前言
Demo 地址
关于 EventBus 笔者将分两篇文章进行介绍。
-
EventBus 的用法
-
EventBus 的源码分析
什么是 EventBus 及优点
-
简化组件之间的通信
-
减弱事件发送者和接受者之间的耦合
-
使 Activity 、Fragment 和后台线程很好的进行消息传递
-
避免和生命周期之间复杂和易错的依赖关系。
-
-
使代码更加简洁
-
效率更高
-
轻量级(jar 包小于 50K) 等等
EventBus 的用法
引入 EventBus
首先去这里先下载 EventBus,然后导入你的项目里
新建一个类 MyEvent
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
public class MyEvent { int id; String msg; public int getId() { return id; } public void setId(int id) { this.id = id; } public String getMsg() { return msg; } public void setMsg(String msg) { this.msg = msg; } } |
注册 EventBus
在需要接受消息的页面调用如下方法注册 EventBus,可以在 Activity 或者 Fragment 的 onCreate 方法里调用。在 onDestroy 方法中解注册。
1 2 3 4 5 6 7 8 9 10 11 12 |
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); EventBus.getDefault().register(this);//注册 EventBus } @Override protected void onDestroy() { super.onDestroy(); EventBus.getDefault().unregister(this); } |
发送消息
在需要发送消息的地方使用 EventBus 的 post 方法发送消息,这里的消息就是新建的类 MyEvent 的对象。
1 2 3 4 5 6 7 |
public void onClick(View view) { MyEvent myEvent = new MyEvent(); myEvent.setId(1); myEvent.setMsg("This is from SecondActivity"); EventBus.getDefault().post(myEvent); } |
接受消息
在需要接受消息的页面写一个方法 onEvent ,并使用 Subscribe 注解标记此方法是 EventBus 接受消息的方法
1 2 3 4 5 |
@Subscribe(threadMode = ThreadMode.MAIN) //标注此方法是 EventBus 接受消息的方法 public void onEvent(MyEvent myEvent){ Log.i(Tag,"MainActivity"+myEvent.getId()+"==="+myEvent.getMsg()+"==Thread="+Thread.currentThread()); } |
Subscribe 注解有一个枚举类型的属性 threadMode ,它有四个值,默认值是 ThreadMode.POSTING。
-
ThreadMode.POSTING — 消息是从哪个线程里发送来的,接受消息的方法将会在和发送消息相同的线程里执行
-
ThreadMode.MAIN — 无论消息是否是从 mian 线程里发送来的,接受消息的方法都在 main 线程中执行
-
ThreadMode.BACKGROUND — 如果消息是从 main 线程中发送来的,将启动一个新的线程执行接受消息的方法,如果不是从 main 线程发送来的,接受消息的方法将在和发送消息相同的线程里执行
-
ThreadMode.ASYNC — 无论消息是从哪个线程里发送来的,都将启动新的子线程执行接受消息的方法。
结语
至此,EventBus 的用法已经介绍完,下篇将从源码分析 EventBus。
想获得去掉 5 元限制的证券账户吗?

如果您想去掉最低交易佣金 5 元限制,使用微信扫描左边小程序二维码,访问微信小程序「优财助手」,点击底部菜单「福利」,阅读文章「通过优财开证券账户无最低交易佣金 5 元限制」,按照文章步骤操作即可获得免 5 元证券账户,股票基金交易手续费率万 2.5。
请注意,一定要按照文章描述严格操作,如错误开户是无法获得免 5 元证券账户的。