java/Android 介面調用的幾種寫法

來源:互聯網
上載者:User

標籤:over   強制   cti   比較   back   androi   調用   資料傳遞   轉換   

雖然Handler用的地方比較普遍,但是介面也有他的獨特之處,比較直觀,然後降低了耦合性

如有一介面,需要將資料傳給使用的activity中,介面如下

public interface PushValue {        void push(byte v,byte v2);    }

1:判斷context是否繼承並通知調用介面

if(context instanceof PushValue){                ((PushValue)context).push((byte)(crc16&0xff),(byte) ((0xff00 & crc16) >> 8));            }

這時只需要在資料傳遞處強制轉換這個介面並調用,然後在使用處(比如Activity中 implements這個介面並實現其push方法即可)

 @Override    public void push(byte v,byte v2) {        tvCrcResult.setText("");        tvCrcResult.setText(ConvertHexByteToString(v)+"  "+ConvertHexByteToString(v2));    }

2:setCallBack的方式

1方法你會發現我們需要給資料來源傳context這個值,然而傳了之後代碼的耦合性就變強了,所以第二種方法解決了此麻煩

private PushValue pushValue ;public void setPushValueCallBack(PushValue pushValueCallBack){        this.pushValue = pushValueCallBack;}

先聲明介面在建立一個set方法,作用是將外部即將執行個體化的介面傳進來,然後直接在資料來源產生處調用 介面內方法即可

pushValue.push((byte)(crc16&0xff),(byte) ((0xff00 & crc16) >> 8));

外部執行個體了使用setPushValueCallBack這個方法的類之後,直接調用setPushValueCallBack方法即可

new xxx類.setPushValueCallBack(new Crc16.PushValue() {            @Override            public void push(byte v, byte v2) {                      //執行相關操作即可            }        });        

這個是仿照Android綁定點擊監聽器寫的,這個也是類似於監聽器,資料來源有資料傳過來,使用的地方將會監聽到變化然後執行相應操作

介面和Handler有什麼區別?

調用Handler系統是會將你的Handler放在主線程中去執行的,然而我們調用的介面卻還是在原本的線程中運行

 

java/Android 介面調用的幾種寫法

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.