1.概述
在之前的博文中簡單介紹過如何實現fragment之間的信息交互:《Android中Fragment與Activity之間的交互(兩種實現方式)》,今天繼續給大家介紹一種可以實現此效果的另外一種方式EventBus。(相比于handler,接口回調,bundle傳參,這個簡單好用到哭)
EventBus是Android下高效的發布/訂閱事件的消息總線。作用是可以代替傳統的Intent,Handler,Broadcast或接口函數在Fragment、Activity、Service、線程之間傳遞數據進行通信,執行方法。做為消息總線,有三個主要元素:
(1)Event:事件
(2)Subscriber:事件訂閱者,接受特定的事件
(3)Publisher:事件發布者,用于通知Subscriber有事件發生
結合EventBus以上的三個元素,我們也可以稱其為一種觀察者設計模式。
EventBus 官網鏈接http://greenrobot.org/eventbus/
EventBus GitHub鏈接https://github.com/greenrobot/EventBus
前期相關博文鏈接:
Android中Fragment與Activity之間的交互(兩種實現方式)
2.Demo示例
(1)示例中左側的按鈕,潘侯爺與碧空海觸發的事件為EventBus的普通事件發布
(2)左側粘性事件按鈕發布的為粘性事件

3.實現步驟
本次Demo架構:

3.1導依賴包
使用AndroidStudio2.2。仍然采用在build.gradle下中dependencies下直接添加如下代碼:
compile 'org.greenrobot:eventbus:3.0.0'
同步后完成依賴添加。
3.2布局文件
(1)layout中主布局文件,activity_main.xml文件
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:id="@+id/activity_main" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="horizontal" tools:context="com.mly.panhouye.eventbustest.MainActivity"> <LinearLayout android:layout_width="0dp" android:layout_height="match_parent" android:layout_weight="1" android:orientation="vertical" android:background="#6f6669"> <Button android:layout_gravity="center_horizontal" android:id="@+id/panhouye" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="ŋ 主站蜘蛛池模板: 罗江县| 兴宁市| 阳江市| 沂源县| 肃宁县| 新巴尔虎左旗| 惠东县| 仙游县| 突泉县| 龙胜| 泰顺县| 平谷区| 石城县| 黔江区| 中卫市| 军事| 长治市| 镶黄旗| 临洮县| 茶陵县| 克什克腾旗| 福清市| 大理市| 新宁县| 大化| 繁峙县| 增城市| 伊金霍洛旗| 紫金县| 龙南县| 绩溪县| 涟水县| 霍山县| 棋牌| 洪雅县| 高邮市| 仁化县| 嘉祥县| 昌邑市| 黄石市| 威信县|