溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

EventBus在各模塊中基本使用

發(fā)布時間:2020-10-18 19:15:24 來源:網(wǎng)絡(luò) 閱讀:502 作者:671076656 欄目:開發(fā)技術(shù)

    EventBus是一款針對Android優(yōu)化的發(fā)布/訂閱事件總線。主要功能是替Intent,Handler,BroadCast在Fragment,Activity,Service,線程之間傳遞消息.優(yōu)點是開銷小,代碼更優(yōu)雅。以及將發(fā)送者和接收者解耦。

    這部分使用起來相對簡單

1、eventbus.jar第三方架包

    這個包不大,23K下面是連接地址

    http://download.csdn.net/download/androidstarjack/8958389

2、注冊(接收)

    這里需要說明,需要接收數(shù)據(jù)的地方才注冊,否則不需要

    即誰接收誰注冊原則

    

EventBus.getDefault().register(this);


    //這個是接收發(fā)送的數(shù)據(jù)

    //我們暫且使用onEventMainThread接口來接收

 

   public void onEventMainThread(Object obj) {
        Log.v("result", "ThirdActivity: " + obj.toString());
   }


3、發(fā)送

    

    EventBus.getDefault().post(object)

    post里面是一個object超類,可以是自己定義的一個對象


4、注銷

    不用的時候別忘了注銷掉(否則仍會接收,這一點和廣播類似)

   

    @Override
    protected void onDestroy(){
        super.onDestroy();
        EventBus.getDefault().unregister(this);
    }


onEventXXXX  onEvent函數(shù)一共有四種,前面的例子只用到一個onEvent。  

       函數(shù)名                         含義 

ThreadMode onEvent                         事件處理在事件發(fā)送的那個線程執(zhí)行 

PostThread onEventMainThread               事件在主線程-UI線程執(zhí)行 

MainThread onEventBackgroundThread         事件在一個后臺線程執(zhí)行(就一個后臺線程) BackgroundThread onEventAsync              事件會單獨啟動一個線程執(zhí)行(每個事件都會啟動一個線程) Async 其中前三個事件處理方式,都應(yīng)該盡快完成。


向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI