EventBus源码分析
来源:互联网 发布:淘宝昵称怎么修改不了 编辑:程序博客网 时间:2024/05/22 03:46
首先引入一位大神的博客
http://blog.csdn.net/yanghuinipurean/article/details/51646819
以下内容依据上述博客内容进行整理,
EventBus是单例模式的,它的优点就是代替广播,在Android应用组件之间进行通信,代码简洁。
EventBus3.x以上的版本,最主要的一个特点就是使用了注解,我们的Subscribe可以在代码中就指定我们的EventBus使用什么ThreadMode,是否粘性事件,优先级。
public class MainActivity extends AppCompatActivity {
private TextView tv;private Button btn;private NetTask netTask;@Overrideprotected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); EventBus.getDefault().register(this); netTask = new NetTask(); tv = (TextView)findViewById(R.id.first_tv); btn = (Button)findViewById(R.id.first_btn); btn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { netTask.runTask(); } });}@Subscribe(threadMode = ThreadMode.MAIN)public void onEventMainThread(Object object) { if(object instanceof NetTask){ String result= ((NetTask) object).getResult(); tv.setText(result); }}@Overrideprotected void onDestroy() { try{ EventBus.getDefault().unregister(this); }catch (Exception e){ } super.onDestroy();}
}
以上代码中,步骤也就是三步:
1、注册EventBus,EventBus.getDefault().register(this);
2、使用注解的方式写订阅函数
@Subscribe(threadMode = ThreadMode.MAIN)
public void onEventMainThread(Object object) {
if(object instanceof NetTask){
String result= ((NetTask) object).getResult();
tv.setText(result);
}
}
3、解注册,
0 0
- EventBus 2.4 源码分析
- EventBus源码注释分析
- EventBus框架源码分析
- EventBus源码分析
- EventBus源码分析
- EventBus 源码分析
- EventBus 源码分析
- EventBus的源码分析
- EventBus 3 源码分析
- EventBus 源码分析
- EventBus的源码分析
- EventBus源码分析
- EventBus源码分析
- EventBus源码分析
- EventBus源码分析
- EventBus 3.0 源码分析
- EventBus 3.0 源码分析
- EventBus源码分析
- NPOI单元格样式
- Python学习笔记
- redis操作命令总结
- Android判断某个Activity是否正在前台显示
- Jetty实战之 安装 运行 部署
- EventBus源码分析
- JS基础一
- 对于抽象类的理解
- POJ 1979 Problem:Red and Black(BFS)
- Java泛型原理及应用
- 深入剖析Redis RDN持久化机制
- (插播)人人都得做爆款——《热点》发布会上的发言
- 【Linux开发】OpenCV在ARM-linux上的移植过程遇到的问题1---cvNamedWindow调用报错的问题
- Spring-aop-4.3.2.jar包目录结构