EventBus 入门+新写法 再也不用写xxxEvent了和这么多Event类了
来源:互联网 发布:极点五笔for mac版 编辑:程序博客网 时间:2024/04/20 11:08
- 首先先写一个BaseEvent
public interface BaseEvent { void setObject(Object obj); Object getObject(); //事件定义 enum CommonEvent implements BaseEvent { /* GO_TO_ALBUMS_PAGE, GO_TO_ARTISTS_PAGE,*/ UPDATE_PLAYBACK_FG, UPDATE_PLAYBACK_BG, UPDTAE_PLAYLIST_COUNT; private Object obj; @Override public void setObject(Object obj) { this.obj = obj; } @Override public Object getObject() { return obj; } } // ... 其他事件定义}
2 在需要发送事件的地方写上并传送参数
BaseEvent.CommonEvent.UPDTAE_PLAYLIST_COUNT.setObject( playlists.get(i - 1)); EventBus.getDefault().post(BaseEvent.CommonEvent.UPDTAE_PLAYLIST_COUNT);
3 如果在需要注册的activity或者frgament中的onCreate/onCreateView注册
EventBus.getDefault.register(this)
onDestroy /onDEstroyView中注销
EventBus.getDefault.unregister(this)
4在接收事件的地方写上让这个activity或者fragment 操作的方法
传入的都是BastEvent的实现类 CommonEvent event 但是所不同的就要看他是这个event的哪个实例 ,可以用event.equals(BaseEvent.CommonEvent.UPDATE_PLAYBACK_BG) 判断
@Subscribe public void updateTrackCount(BaseEvent.CommonEvent event) { if (event.equals(BaseEvent.CommonEvent.UPDTAE_PLAYLIST_COUNT)) { if (getAdapter() != null) { View view = recyclerView.getChildAt(0); if (view != null) { getAdapter().initHeaderFunc(view); } } } }
5 需要注意的问题, 由于众所周知枚举在安卓中会导致性能下降,所以不建议用枚举,而用注解限定来替代, 暂时立个flag, 有时间再来改动, 当然有大神帮忙改下也可以!
阅读全文
0 0
- EventBus 入门+新写法 再也不用写xxxEvent了和这么多Event类了
- lombok快速入门:实体类中再也不用写setter和getter,toString等方法了
- DataBinding 再也不用写findviewbyId了
- 再也不用CSDN了!!!!!!
- Top 16 Java 应用类 - 这些功能再也不用自己写了
- Java 应用类 - 这些功能再也不用自己写了
- Top 16 Java 应用类 - 这些功能再也不用自己写了
- 下次再也不用清理注册表工具了
- 再也不用搜狗输入法了
- 再也不用usb调试程序了
- 省流量再也不用愁了
- 再也不用担心系统出问题了
- 再也不用为图标发愁了
- 再也不用数据线调试android了
- 再也不用担心滑动页面了
- 程序员再也不用抢月饼了~
- 手机网页再也不用sprites了
- 开发Android再也不用梯子了
- 机器学习(6)-神经网络
- java 静态内部类不可以继承非静态内部类理解
- googLenet
- QEMU模拟Mini2440开发板运行环境
- linux下的"BusHound"——usb_mon
- EventBus 入门+新写法 再也不用写xxxEvent了和这么多Event类了
- Mysql交叉连接总结
- 【Jfinal】页面滚动 ajax 加载更多
- [iOS]用Xib编辑视图时User Defined Runtime Attributes的使用
- CMake 编译支持GDB调试
- 数据库相关知识点
- JAVA设计模式(五)----单例模式
- STL_____ upper_bound()与lower_bound()算法
- Python 字典(Dictionary)