欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

EventBus的使用

eventbus和觀察者是一樣的,需要先導入eventbus的架包。

成都創(chuàng)新互聯(lián)公司技術(shù)團隊十載來致力于為客戶提供網(wǎng)站設(shè)計、網(wǎng)站建設(shè)、高端網(wǎng)站設(shè)計、成都營銷網(wǎng)站建設(shè)、搜索引擎SEO優(yōu)化等服務(wù)。經(jīng)過多年發(fā)展,公司擁有經(jīng)驗豐富的技術(shù)團隊,先后服務(wù)、推廣了1000+網(wǎng)站,包括各類中小企業(yè)、企事單位、高校等機構(gòu)單位。

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

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

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

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

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


EventBus包含4個ThreadMode:PostThread,MainThread,BackgroundThread,Async

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

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

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

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

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

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

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


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

一個事件的基類

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、注冊eventbus事件,其中必須在寫onEventPostThread, onEventMainThread,onEventBackgroundThread,onEventAsync其中一個方法,因為這是事件的回調(diào),eventbus會自動檢測是否類中存在四種方法中的其中一種。

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");//通知注冊類型為FavorEvent的類調(diào)用回調(diào)       d      EventBus.getDefault().post(new FavorEvent(000, "nimeia"));

            }
        });
    }
}

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

EventBus 的使用

新聞標題:EventBus的使用
分享鏈接:http://chinadenli.net/article12/poosgc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供ChatGPT、網(wǎng)站設(shè)計公司自適應(yīng)網(wǎng)站、全網(wǎng)營銷推廣品牌網(wǎng)站建設(shè)、外貿(mào)網(wǎng)站建設(shè)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都app開發(fā)公司