天天看點

Java回調

筆記(學了回調,有點小複雜,自己整理下,加深了解)

人家說比較經典的回調方式:

  • Class A實作接口CallBack callback
  • class A中包含一個class B的引用b
  • class B有一個參數為callback的方法f(CallBack callback) 
  • A的對象a調用B的方法 f(CallBack callback) ——A類調用B類的某個方法 C
  • 然後b就可以在f(CallBack callback)方法中調用A的方法 ——B類調用A類的某個方法D

這樣比較難了解,而且在寫代碼的時候也不好操作

是以換湯不換藥,重新理一下思維,按照寫代碼的順序重新了解下

回調最主要的作用是增加代碼的複用性,

然後就是我現在學的通信fragment 和activity通信。

複用性這個不好靠一段代碼寫出來,直接寫通信

開始!

1寫一個類A       (該類你要将資料傳到類B中)

2定義接口

你要用來幹嘛?就是傳進來的參數就是你需要傳遞的資料

inteface Callbacks{

public void doSomethings(String result);

}

3 寫一個方法,該方法中将接口callbacks作為參數,為啥,主要是為了調用該接口的方法,然後向下調用他的具體實作(就是類B中的調用)

public void f(Callbacks callbacks){

  //msg 這個就是你要傳出去的資訊,是在該類中定義好或者處理過的資料

callbacks.dosomethings(msg); 

}

4建立類B 主要實作接口Callbacks

@override

public void doSomethings(){........};//具體實作擷取A的資訊後做的一些事。

先引用A  a,然後調用他的f()方法

a.f(this);//因為B實作了接口,是以可以用實作類來代替接口Callbacks  f()中的callbacks.dosomethings(msg); 會調用B的具體實作方法。

這樣就實作了通信,而代碼的複用主要就是jian将可變的代碼和不變的分離開來,這樣可以多用不變的代碼就shix實作了複用。

而Android中的較多的源碼都是使用了這種回調機制。