eventbus使用_Android EventBus框架的使用介绍
生活随笔
收集整理的這篇文章主要介紹了
eventbus使用_Android EventBus框架的使用介绍
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
EventBus 是Android和Java數據通信的一個簡捷框架,在Android中,主要用于線程直接的通信以及Activity,Fragment等之間的數據交互等
官方介紹
- 簡化組件之間的通信,解耦事件發送方和接收方,可以很好地處理Activity、Fragment和后臺線程直接的數據交互,避免復雜且容易出錯的依賴項和生命周期問題
- 使您的代碼更簡單
- 更快捷
- 小(60k 的jar包)
- 被安裝在十億以上的應用程序實踐證明
- 具有發送線程、用戶優先級等高級功能
EventBus 的使用
效果圖
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 布局文件<?xml version="1.0" encoding="utf-8"?>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 布局文件<?xml version="1.0" encoding="utf-8"?>PS :要注意register和unregister 方法的調用的時機,要配合Activity的生命周期或者Fragment的生命周期。不然會出現Post了消息,但無法收到消息的情況喔!!!
總結
以上是生活随笔為你收集整理的eventbus使用_Android EventBus框架的使用介绍的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python多线程处理文件_Python
- 下一篇: python tkinter_Pytho