Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> 實例介紹 Java(android) 回調函數使用方法

實例介紹 Java(android) 回調函數使用方法

編輯:關於Android編程

在Android開發中經常用到回調機制,其中最典型的就是控件被觸發的實現方式,簡單而言,如Button被Click後,是系統調用了OnClick方法,而我們為Button注冊了OnClickListener監聽器,當被觸發Click後,OnClickListener中的OnClick方法就會被回調,我們就能在其中執行相應操作了。

下面舉一個簡單的例子介紹回調的實現方式:


回調函數使用的簡單例子

程序員A寫了一段程序(程序a),其中預留有回調函數接口,並封裝好了該程序。程序員B要讓a調用自己的程序b中的一個方法,於是,他通過a中的接口回調自己b中的方法。目的達到。

在JAVA中通過接口(interface)來實現定義回調函數。

下面是程序員A的程序a

public class A {    
public CallBack mCallBack;     
public void setCallfuc(MyCallInterface mc){   
this.mc= mc;     
}  
public void call(){  
  this.mCallBack.method();    
}    
}   

定義一個接口,以便程序員B根據我的定義編寫程序實現接口。

public interface CallBack {    
public void method();    
}   

於是,程序員B只需要實現這個接口就能達到回調的目的了:

public class B implements MyCallInterface {  

//實現這個接口
@override  
public void method() {    
System.out.println("當程序a調用了method方法時我就會答應出來");     
}  
}  


測試方法

 //測試方法 
public static void main(String args[]) {    
A a = new A();  
//相當於把A和B通過CallBack接口建立了聯系 
a.setListener(new B());   
 //調用了該方法,B中的接口方法打印 
a.call();   
  }    



*****************************************************************************************************************************************************************************************

回調函數經典示例

使用java回調函數來實現一個測試函數運行時間的工具類:

public class TestObject {   
/**  
* 一個用來被測試的方法,進行了一個比較耗時的循環  
*/   
public static void testMethod(){   
for ( int i= 0 ; i< 100000000 ; i++){    
}   
}   
/**  
* 一個簡單的測試方法執行時間的方法  
*/   
public void testTime(){   
long begin = System.currentTimeMillis(); //測試起始時間   
testMethod(); //測試方法   
long end = System.currentTimeMillis(); //測試結束時間   
System.out.println("[use time]:" + (end - begin)); //打印使用時間   
}   
  
public static void main(String[] args) {   
TestObject test=new TestObject();   
test.testTime();   
}   
}   

大家看到了testTime()方法,就只有"//測試方法"是需要改變的,下面我們來做一個函數實現相同功能但更靈活:

首先定一個回調接口:

public interface CallBack {   
//執行回調操作的方法   
void execute();   
}    
定義工具類

public class Tools {    
/**  
* 測試函數使用時間,通過定義CallBack接口的execute方法  
* @param callBack  
*/   
public void testTime(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 tool = new Tools();   
tool.testTime(new CallBack(){   
//定義execute方法   
public void execute(){   
//這裡可以加放一個或多個要測試運行時間的方法   
TestObject.testMethod();   
}  
});
}





  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved