真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

EventBus的使用-創(chuàng)新互聯(lián)

eventbus和觀察者是一樣的,需要先導(dǎo)入eventbus的架包。

十余年的仙桃網(wǎng)站建設(shè)經(jīng)驗(yàn),針對(duì)設(shè)計(jì)、前端、開發(fā)、售后、文案、推廣等六對(duì)一服務(wù),響應(yīng)快,48小時(shí)及時(shí)工作處理。全網(wǎng)整合營(yíng)銷推廣的優(yōu)勢(shì)是能夠根據(jù)用戶設(shè)備顯示端的尺寸不同,自動(dòng)調(diào)整仙桃建站的顯示方式,使網(wǎng)站能夠適用不同顯示終端,在瀏覽器中調(diào)整網(wǎng)站的寬度,無論在任何一種瀏覽器上瀏覽網(wǎng)站,都能展現(xiàn)優(yōu)雅布局與設(shè)計(jì),從而大程度地提升瀏覽體驗(yàn)。創(chuàng)新互聯(lián)建站從事“仙桃網(wǎng)站設(shè)計(jì)”,“仙桃網(wǎng)站推廣”以來,每個(gè)客戶項(xiàng)目都認(rèn)真落實(shí)執(zhí)行。

基本的使用步驟就是如下4步,

  1. 定義事件類型:
    `public class MyEvent {}`

  2. 定義事件處理方法:
    `public void onEventMainThread`

  3. 注冊(cè)訂閱者:
    `EventBus.getDefault().register(this)`

  4. 發(fā)送事件:
    `EventBus.getDefault().post(new MyEvent())`


EventBus包含4個(gè)ThreadMode:PostThread,MainThread,BackgroundThread,Async

MainThread我們已經(jīng)不陌生了;我們已經(jīng)使用過。

具體的用法,極其簡(jiǎn)單,方法名為:onEventPostThread, onEventMainThread,onEventBackgroundThread,onEventAsync即可

具體什么區(qū)別呢?

onEventMainThread代表這個(gè)方法會(huì)在UI線程執(zhí)行

onEventPostThread代表這個(gè)方法會(huì)在當(dāng)前發(fā)布事件的線程執(zhí)行

BackgroundThread這個(gè)方法,如果在非UI線程發(fā)布的事件,則直接執(zhí)行,和發(fā)布在同一個(gè)線程中。如果在UI線程發(fā)布的事件,則加入后臺(tái)任務(wù)隊(duì)列,使用線程池一個(gè)接一個(gè)調(diào)用。

Async 加入后臺(tái)任務(wù)隊(duì)列,使用線程池調(diào)用,注意沒有BackgroundThread中的一個(gè)接一個(gè)。

1、具體實(shí)現(xiàn):

一個(gè)事件的基類

public class BaseEvent {
}

2、具體事件的類型

package com.example.mydemo;

public class FavorEvent extends BaseEvent {

   private int did;
   private String msg = "";

   public FavorEvent() {

   }

   public FavorEvent(int did, String msg) {
      this.did = did;
      this.setMsg(msg);
   }

   public int getDid() {
      return did;
   }

   public void setDid(int did) {
      this.did = did;
   }

   public String getMsg() {
      return msg;
   }

   public void setMsg(String msg) {
      this.msg = msg;
   }

   @Override
   public String toString() {
      return "FavorEvent [did=" + did + ", msg=" + msg + "]";
   }

}

3、注冊(cè)eventbus事件,其中必須在寫onEventPostThread, onEventMainThread,onEventBackgroundThread,onEventAsync其中一個(gè)方法,因?yàn)檫@是事件的回調(diào),eventbus會(huì)自動(dòng)檢測(cè)是否類中存在四種方法中的其中一種。

package com.example.mydemo;

import android.app.Activity;
import android.content.Intent;
import android.os.Bundle;
import android.util.Log;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.TextView;
import de.greenrobot.event.EventBus;

public class MainActivity extends Activity {

   private String TAG = "MainActivity";

   @Override
   protected void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      setContentView(R.layout.activity_main);
      EventBus.getDefault().register(this);
      findViewById(R.id.ttt).setOnClickListener(new OnClickListener() {

         @Override
         public void onClick(View v) {
            Intent intent = new Intent(MainActivity.this,
                  MainActivity2.class);
            // TODO Auto-generated method stub
            startActivity(intent);
         }
      });

   }

   public void onEventMainThread(FavorEvent event) {
      Log.e(TAG, "onEventMainThread" + "event=" + event.toString());
      ((TextView) findViewById(R.id.ttt)).setText("發(fā)布啦");

   }

   @Override
   protected void onDestroy() {
      // TODO Auto-generated method stub

      EventBus.getDefault().unregister(this);
      super.onDestroy();
   }

   @Override
   public boolean onCreateOptionsMenu(Menu menu) {
      // Inflate the menu; this adds items to the action bar if it is present.
      getMenuInflater().inflate(R.menu.main, menu);
      return true;
   }

}

4、在MainActivity2類中通知類型為favorite類型的事件調(diào)用四種onEvent方法中的一種(我們已經(jīng)在MainActivity類中寫好了)

package com.example.mydemo;

import de.greenrobot.event.EventBus;
import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.util.Log;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.TextView;

public class MainActivity2 extends Activity {

   private String TAG = "MainActivity2";

   @Override
   protected void onCreate(Bundle savedInstanceState) {
      super.onCreate(savedInstanceState);
      setContentView(R.layout.activity_main_activity2);

//      EventBus.getDefault().register(this);

      findViewById(R.id.rrr).setOnClickListener(new OnClickListener() {

         @Override
         public void onClick(View v) {
            Log.e(TAG, "onEventMainThread");//通知注冊(cè)類型為FavorEvent的類調(diào)用回調(diào)     d     EventBus.getDefault().post(new FavorEvent(000, "nimeia"));

         }
      });
   }
}

點(diǎn)擊MainActivity2中findViewById(R.id.rrr)的事件,log打印如下,說明調(diào)用成功

EventBus 的使用

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。


網(wǎng)站名稱:EventBus的使用-創(chuàng)新互聯(lián)
瀏覽路徑:http://weahome.cn/article/dspegh.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部