筆記(學了回調,有點小複雜,自己整理下,加深了解)
人家說比較經典的回調方式:
- 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中的較多的源碼都是使用了這種回調機制。