1. 程式人生 > >理解Activity中的方法回撥

理解Activity中的方法回撥

理解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。