android回調函數總結


回調函數就是那些自己寫的,但是不是自己來調,而是給別人來掉的函數。

消息響應函數就可以看成是回調函數,因為是讓系統在合適的時候去調用。這不過消息響應函數就是為了處理消息的,
所以就拿出來單做一類了。其實本質上就是回調函數。

但是回調函數不是只有消息響應函數一種,比如在內核編程中,驅動程序就要提供一些回調函數,
當一個設備的數據讀寫完成后,讓系統調用這些回調函數來執行一些后續工作。

回調函數賦予程序員這樣一種能力,讓自己編寫的代碼能夠跳出正常的程序控制流,
適應具體的運行環境在正確的時間執行。

回調函數總結

別人給回調的定義:

所謂回調,就是對象A調用另一對象B中的某個方法b,然后B又在某個時候反過來調用A中的某個函數c,對於B來說,這個c便叫做回調函數。
回調是一種雙向調用模式,也就是說,被調用方在接口被調用時也會調用對方的接口.

 

我的理解, 和一般的類之間的組合類似。就只是A對象調用B對象的一個方法b。只不過方法b是抽象的,是后期綁定的。

 

java回調代碼。

    1,定義回調接口。

package  com.smart;   
/**   
 * 定義回調接口   
 */    
public   interface  CallBack {   
    void  execute();   
}   






package com.smart;   
/**  
 * 定義回調接口  
 */  
public interface CallBack {   
    void execute();   
}  









package  com.smart;   
/**   
 * 工具類   
 */    
public   class  Tools {   
    public   void  test(CallBack callBack){   
        long  begin = System.currentTimeMillis(); //測試起始時間       
        callBack.execute();///進行回調操作       
        long  end = System.currentTimeMillis(); //測試結束時間       
        System.out.println("[use time]:"  + (end - begin)); //打印使用時間       
   
    }   
    public   static   void  main(String[] args){   
        Tools tools = new  Tools();   
        tools.test(new  CallBack(){   
            public   void  execute() {   
                //A.method();  測試類A的某個方法執行的時間    
                //B.method();  測試類B的某個方式執行的時間    
                System.out.print("回調" );   
            }   
        });   
    }   
}   















package com.smart;   
/**  
 * 工具類  
 */  
public class Tools {   
    public void test(CallBack callBack){   
        long begin = System.currentTimeMillis();//測試起始時間      
        callBack.execute();///進行回調操作      
        long end = System.currentTimeMillis();//測試結束時間      
        System.out.println("[use time]:" + (end - begin));//打印使用時間      
  
    }   
    public static void main(String[] args){   
        Tools tools = new Tools();   
        tools.test(new CallBack(){   
            public void execute() {   
                //A.method();  測試類A的某個方法執行的時間   
                //B.method();  測試類B的某個方式執行的時間   
                System.out.print("回調");   
            }   
        });   
    }   
}  
















   優點:我個人認為優點主要是將代碼中變與不變的部分相分離,從而大大提高了程序的重用性和擴展性。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM