EventBus使用詳解——初步使用EventBus
前言:EventBus是上週專案中用到的,網上的文章大都一樣,或者過時,有用的沒幾篇,經過琢磨,請教他人,也終於弄清楚點眉目,記錄下來分享給大家。
相關文章:
1、《EventBus使用詳解(一)——初步使用EventBus》
2、《EventBus使用詳解(二)——EventBus使用進階》
一、概述
EventBus是一款針對Android優化的釋出/訂閱事件匯流排。主要功能是替代Intent,Handler,BroadCast在Fragment,Activity,Service,執行緒之間傳遞訊息.優點是開銷小,程式碼更優雅。以及將傳送者和接收者解耦。
1、下載EventBus的類庫
原始碼:
2、基本使用
(1)自定義一個類,可以是空類,比如:
[java] view plain copy
- public class AnyEventType {
- public AnyEventType(){}
- }
(2)在要接收訊息的頁面註冊:
[java] view plain copy
- eventBus.register(this);
(3)傳送訊息
[java] view plain copy
- eventBus.post(
(4)接受訊息的頁面實現(共有四個函式,各功能不同,這是其中之一,可以選擇性的實現,這裡先實現一個):
[java] view plain copy
- public void onEvent(AnyEventType event) {}
[java] view plain copy
- eventBus.unregister(this);
首先,在EventBus中,獲取例項的方法一般是採用EventBus.getInstance()來獲取預設的EventBus例項,當然你也可以new一個又一個,個人感覺還是用預設的比較好,以防出錯。
二、實戰
先給大家看個例子:
當擊btn_try按鈕的時候,跳到第二個Activity,當點選第二個activity上面的First Event按鈕的時候向第一個Activity傳送訊息,當第一個Activity收到訊息後,一方面將訊息Toast顯示,一方面放入textView中顯示。
按照下面的步驟,下面來建這個工程:
1、基本框架搭建
想必大家從一個Activity跳轉到第二個Activity的程式應該都會寫,這裡先稍稍把兩個Activity跳轉的程式碼建起來。後面再新增EventBus相關的玩意。
MainActivity佈局(activity_main.xml)
[html] view plain copy
- <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:tools="http://schemas.android.com/tools"
- android:layout_width="match_parent"
- android:layout_height="match_parent"
- android:orientation="vertical">
- <Button
- android:id="@+id/btn_try"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:text="btn_bty"/>
- <TextView
- android:id="@+id/tv"
- android:layout_width="wrap_content"
- android:layout_height="match_parent"/>
- </LinearLayout>
[html] view plain copy
- <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
- xmlns:tools="http://schemas.android.com/tools"
- android:layout_width="match_parent"
- android:layout_height="match_parent"
- android:orientation="vertical"
- tools:context="com.harvic.try_eventbus_1.SecondActivity" >
- <Button
- android:id="@+id/btn_first_event"
- android:layout_width="match_parent"
- android:layout_height="wrap_content"
- android:text="First Event"/>
- </LinearLayout>
[java] view plain copy
- public class MainActivity extends Activity {
- Button btn;
- @Override
- protected void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.activity_main);
- btn = (Button) findViewById(R.id.btn_try);
- btn.setOnClickListener(new View.OnClickListener() {
- @Override
- public void onClick(View v) {
- // TODO Auto-generated method stub
- Intent intent = new Intent(getApplicationContext(),
- SecondActivity.class);
- startActivity(intent);
- }
- });
- }
- }
2、新建一個類FirstEvent
[java] view plain copy
- package com.harvic.other;
-
相關推薦
EventBus使用詳解——初步使用EventBus
前言:EventBus是上週專案中用到的,網上的文章大都一樣,或者過時,有用的沒幾篇,經過琢磨,請教他人,也終於弄清楚點眉目,記錄下來分享給大家。 相關文章: 1、《EventBus使用詳解(一)——初步使用EventBus》 2、《EventBus使用詳解(二)——E
EventBus詳解
1.前言 EventBus是一款針對Android優化的釋出/訂閱事件匯流排。可以替代廣播、startActivityForResult、Handler、非同步回撥等來實現各元件間、元件與後臺執行緒間的通訊。它的優點是開銷小,程式碼更優雅,以及將傳送者和接收者解耦。 通常我們在使用EventBus的時候都
Android的EventBus 詳解(2.4及最新版3.0)[觀察者模式]
EventBus使用詳解EventBus是什麼?EventBus是一種釋出者和訂閱者的事件分發模式。我們可以這麼理解,比如我們訂閱的Android Weekly,每當星期一0點這個時候,Androi
Android greenrobot:EventBus詳解
1.執行緒模型 (1)POSTING:釋出事件和接收事件在同一個執行緒。 (2)MAIN:不論事件是在哪個執行緒中釋出出來的,該事件處理函式都會在UI執行緒中執行。該方法可以用來更新UI,但是不能處理耗時操作。 (3)BACKGROUND:如果事件是在UI執行緒中釋出出來的,那麼該事件處理函式就會提交到執
Eventbus 詳解,Activity和fragment通訊,相互發送接收資料
最近,需要做fragment與activity的互動,但是,又不想使用回撥介面,所以想到了EventBus. 大致瞭解了一下其主要介紹為: 一款針對Android優化的釋出/訂閱事件匯流排。主要功能是替代Intent,Handler,BroadCast在Fr
Android之事件匯流排EventBus詳解
顧名思義,AndroidEventBus是一個Android平臺的事件匯流排框架,它簡化了Activity、Fragment、Service等元件之間的互動,很大程度上降低了它們之間的耦合,使我們的程式碼更加簡潔,耦合性更低,提升了我們的程式碼質量。但它能做的卻不僅限於這些
EventBus使用詳解(二)——EventBus使用進階
前言:這段時間感覺自己也有點懶了,真是內心有點自責呢,除了工作,也沒做點什麼,EventBus也是一週前總結出來的,只能以寫部落格為名來彌補內心的罪惡感了,集合同事們做的專案,雖然上週開動了,但總感覺大家積極性不高,如何才能做一個合格的管理者,還真是一個考驗。follow y
EventBus使用詳解(一)——初步使用EventBus
前言:EventBus是上週專案中用到的,網上的文章大都一樣,或者過時,有用的沒幾篇,經過琢磨,請教他人,也終於弄清楚點眉目,記錄下來分享給大家。相關文章:一、概述EventBus是一款針對Android優化的釋出/訂閱事件匯流排。主要功能是替代Intent,Handler,
EventBus使用詳解
private 不能 get layout 繼承 protected 耦合 ide state EventBus是針一款對Android的發布/訂閱事件總線。它可以讓我們很輕松的實現在Android各個組件之間傳遞消息,並且代碼的可讀性更好,耦合度更低。長話短說直接介紹使用
開源庫之EventBus使用詳解
簡介 EventBus是一種用於Android的釋出/訂閱事件匯流排。簡化了應用程式內各元件間、元件與後臺執行緒間的通訊。常用於Activity、Fragment和後臺Service之間通訊、傳
EventBus實現解耦,使用詳解
1,建立一個springboot專案。結構如下: 2,引入jar包 <dependencies> <dependency> <groupId>org.springframework.boot</groupId>
EventBus 3.0使用詳解
01 前言 當我們進行專案開發的時候,往往是需要應用程式的各元件、元件與後臺執行緒間進行通訊,比如在子執行緒中進行請求資料,當資料請求完畢後通過Handler或者是廣播通知UI,而兩個Fragment之家可以通過Listener進行通訊等等。當我們的專案越來越複雜,使用I
EventBus原始碼詳解(二):進階使用
寫在前面 EventBus是一個Android平臺上基於事件釋出和訂閱的輕量級框架,可以對釋出者和訂閱者解耦,並簡化Android的事件傳遞。 本文是關於EventBus系列文章的第二篇,相關文章有: 如果你對EventBus不瞭解,我建議先閱讀該系列
Android EventBus使用詳解
目錄(?)[+] 轉載請表明出處:http://blog.csdn.net/lmj623565791/article/details/40794879,本文出自:【張鴻洋的部落格】 1、概述 最近大家面試說經常被問到EventBus,github上果斷down了一份,
EventBus原始碼詳解(一):基本使用
寫在前面 對於Android程式設計師來說,相信大家都聽過EventBus的大名。EventBus是一個Android平臺上基於事件釋出和訂閱的輕量級框架,可以對釋出者和訂閱者解耦,並簡化Android的事件傳遞。正如官方介紹其優勢: 簡化了元件之間的通訊
EventBus使用詳解及元件之間通訊
概述EventBus是一個Android端優化的publish/subscribe訊息事件匯流排,簡化了應用程式內各元件間、元件與後臺執行緒間的通訊。如何使用(eg:A activity 向 B activity傳遞資訊)1.定義一個訊息類Mesage該類是一個JavaBea
Guava中EventBus的使用和詳解
概述 EventBus是Google Guava庫中一個常用的元件。他使用了設計模式中的Observer(觀察者)模式,實現了一個publish/subscribe模型的訊息匯流排,簡化了各元件之間之間的通訊。 Observer模式是比較常
EventBus 3.0的用法詳解
基本用法 註冊 舉個例子,你需要在一個activity中註冊eventbus事件,然後定義接收方法,這和Android的廣播機制很像,你需要首先註冊廣播,然後需要編寫內部類,實現接收廣播,然後操作UI,在EventBus中,你同樣需要這麼做。 @Override protected void onCre
Android EventBus 使用詳解
概述 EventBus是一個Android端優化的publish/subscribe訊息匯流排,它簡化了應用程式內各元件間、元件與後臺執行緒間的通訊。比如請求網路,等網路返回時通過Handler或Broadcast通知UI,兩個Fragment之間需要通過Li
Android訊息傳遞之EventBus 3.0使用詳解(轉載)
前面兩篇不僅學習了子執行緒與UI主執行緒之間的通訊方式,也學習瞭如何實現元件之間通訊,基於前面的知識我們今天來分析一下EventBus是如何管理事件匯流排的,EventBus到底是不是最佳方案?學習本篇知識之前建議先回顧一下前兩篇知識:Android訊息傳遞