eventbus使用-ag凯发k8国际
ag凯发k8国际
收集整理的这篇文章主要介绍了
eventbus使用_android eventbus框架的使用介绍
小编觉得挺不错的,现在分享给大家,帮大家做个参考.
eventbus 是android和java数据通信的一个简捷框架,在android中,主要用于线程直接的通信以及activity,fragment等之间的数据交互等
- 简化组件之间的通信,解耦事件发送方和接收方,可以很好地处理activity、fragment和后台线程直接的数据交互,避免复杂且容易出错的依赖项和生命周期问题
- 使您的代码更简单
- 更快捷
- 小(60k 的jar包)
- 被安装在十亿以上的应用程序实践证明
- 具有发送线程、用户优先级等高级功能
效果图
1.引入eventbus
implementation 'org.greenrobot:eventbus:3.2.0'2.定义一个消息类,例如messageevent
public class messageevent { private string message; public messageevent(string message) { this.message = message; } public string getmessage() { return message; } public void setmessage(string message) { this.message = message; }}3.全部代码列表
public class mainactivity extends appcompatactivity { textview mtvtext; @override protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.activity_main); mtvtext = findviewbyid(r.id.tv_text); eventbus.getdefault().register(this); } public void onclick(view view) { intent intent = new intent(this, page1activity.class); startactivity(intent); } @subscribe public void onmessageevent(messageevent messageevent) { mtvtext.settext(messageevent.getmessage()); }}//activity_main.xml 布局文件public class page1activity extends appcompatactivity { textview mtvmessage; @override protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); setcontentview(r.layout.activity_page1); mtvmessage = findviewbyid(r.id.tv_message); } public void onmessageclick(view view) { string message = "我是一个消息"; mtvmessage.settext(message); messageevent messageevent = new messageevent(message); eventbus.getdefault().post(messageevent); }}//activity_page1.xml 布局文件ps :要注意register和unregister 方法的调用的时机,要配合activity的生命周期或者fragment的生命周期。不然会出现post了消息,但无法收到消息的情况喔!!!
总结
以上是ag凯发k8国际为你收集整理的eventbus使用_android eventbus框架的使用介绍的全部内容,希望文章能够帮你解决所遇到的问题。
- 上一篇:
- 下一篇: python tkinter_pytho