理解Activity中的方法回撥
阿新 • • 發佈:2018-12-18
理解Android中Activity的方法回撥
這篇文章主要介紹了理解Android中Activity的方法回撥,本文用一個完整例項模擬了Activity方法回撥的過程,從而加深理解Activity的方法回撥思想,需要的朋友可以參考下
為什麼需要方法回撥?
方法回撥是功能定義和功能分離的一種手段,是一種鬆耦合的設計思想。在JAVA中回撥是通過介面來實現的。作為一種系統架構,必須要有自己的執行環境,並且要提供使用者的實現介面。
下面通過例項來模擬一下Android中Activity的方法回撥思想。
Activity介面
package com.xujing.test
//定義介面
public interface Activity{
//建立時呼叫的方法
public void onCreate();
//啟動時呼叫的方法
public void onStart();
//銷燬時呼叫的方法
public void onDestory();
}
Activity介面的實現類MyActivity
複製程式碼程式碼如下:package com.xujing.test
//定義一個類實現Activity介面
public void MyActivity implements Activity{
//實現建立方法,簡單輸出提示資訊
@Override
public void onCreate(){
System.out.println("onCreate....");
}
//實現啟動方法,簡單輸出提示資訊
@Override
public void onStart(){
System.out.println("onStart....");
}
//實現銷燬方法,簡單輸出提示資訊
@Override
public void onDestory(){
System.out.println("onDestory....");
}
}
系統執行環境類AndroidSystem
複製程式碼程式碼如下:package com.xujing.test
//系統執行環境類
public class AndroidSystem{
//定義建立常量
public static final int CREATE=1;
//定義啟動常量
public static final int START=2;
//定義銷燬常量
public static final int DESTORY=3;
//執行方法
public void run(Activity a,int state){
switch(state){
//建立
case CREATE:
a.onCreate();
break;
//啟動
case START:
a.onStart();
break;
//銷燬
case DESTORY:
a.onDestory();
break;
}
}
}
測試類:
複製程式碼程式碼如下:
package com.xujing.test
//測試類
public class Test{
//主方法
public static void main(String[] args){
//例項化AndroidSystem
AndroidSystem system = new AndroidSystem();
//例項化MyActivity
Activity a = new MyActivity();
//建立
system.run(a,AndroidSystem.CREATE);
//啟動
system.run(a,AndroidSystem.START);
//銷燬
system.run(a,AndroidSystem.DESTORY);
}
}
通過上述程式碼我們可以看出,介面(系統框架)是系統提供的,介面的實現是使用者實現的。這樣可以達到介面統一,實現不同。系統通過在不同的狀態“回撥”我們的實現類,來達到介面和實現的分離。
轉載至https://www.jb51.net/article/64764.htm。