欢迎访问 生活随笔!

凯发k8官方网

当前位置: 凯发k8官方网 > 运维知识 > android >内容正文

android

eventbus使用-凯发k8官方网

发布时间:2024/10/14 android 24 豆豆
凯发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了消息,但无法收到消息的情况喔!!!

总结

以上是凯发k8官方网为你收集整理的eventbus使用_android eventbus框架的使用介绍的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得凯发k8官方网网站内容还不错,欢迎将凯发k8官方网推荐给好友。

网站地图