理解Android中Activity的方法回調(diào)
為什么需要方法回調(diào)?
方法回調(diào)是功能定義和功能分離的一種手段,是一種松耦合的設(shè)計(jì)思想。在JAVA中回調(diào)是通過接口來實(shí)現(xiàn)的。作為一種系統(tǒng)架構(gòu),必須要有自己的運(yùn)行環(huán)境,并且要提供用戶的實(shí)現(xiàn)接口。
下面通過實(shí)例來模擬一下Android中Activity的方法回調(diào)思想。
Activity接口
package com.xujing.test
//定義接口
public interface Activity{
//創(chuàng)建時(shí)調(diào)用的方法
public void onCreate();
//啟動(dòng)時(shí)調(diào)用的方法
public void onStart();
//銷毀時(shí)調(diào)用的方法
public void onDestory();
}
Activity接口的實(shí)現(xiàn)類MyActivity
package com.xujing.test
//定義一個(gè)類實(shí)現(xiàn)Activity接口
public void MyActivity implements Activity{
//實(shí)現(xiàn)創(chuàng)建方法,簡(jiǎn)單輸出提示信息
@Override
public void onCreate(){
System.out.println("onCreate....");
}
//實(shí)現(xiàn)啟動(dòng)方法,簡(jiǎn)單輸出提示信息
@Override
public void onStart(){
System.out.println("onStart....");
}
//實(shí)現(xiàn)銷毀方法,簡(jiǎn)單輸出提示信息
@Override
public void onDestory(){
System.out.println("onDestory....");
}
}
系統(tǒng)運(yùn)行環(huán)境類AndroidSystem
package com.xujing.test
//系統(tǒng)運(yùn)行環(huán)境類
public class AndroidSystem{
//定義創(chuàng)建常量
public static final int CREATE=1;
//定義啟動(dòng)常量
public static final int START=2;
//定義銷毀常量
public static final int DESTORY=3;
//運(yùn)行方法
public void run(Activity a,int state){
switch(state){
//創(chuàng)建
case CREATE:
a.onCreate();
break;
//啟動(dòng)
case START:
a.onStart();
break;
//銷毀
case DESTORY:
a.onDestory();
break;
}
}
}
測(cè)試類:
package com.xujing.test
//測(cè)試類
public class Test{
//主方法
public static void main(String[] args){
//實(shí)例化AndroidSystem
AndroidSystem system = new AndroidSystem();
//實(shí)例化MyActivity
Activity a = new MyActivity();
//創(chuàng)建
system.run(a,AndroidSystem.CREATE);
//啟動(dòng)
system.run(a,AndroidSystem.START);
//銷毀
system.run(a,AndroidSystem.DESTORY);
}
}
通過上述代碼我們可以看出,接口(系統(tǒng)框架)是系統(tǒng)提供的,接口的實(shí)現(xiàn)是用戶實(shí)現(xiàn)的。這樣可以達(dá)到接口統(tǒng)一,實(shí)現(xiàn)不同。系統(tǒng)通過在不同的狀態(tài)“回調(diào)”我們的實(shí)現(xiàn)類,來達(dá)到接口和實(shí)現(xiàn)的分離。
- 詳細(xì)介紹Android中回調(diào)函數(shù)機(jī)制
- Android中回調(diào)接口的使用介紹
- Android的Fragment的生命周期各狀態(tài)和回調(diào)函數(shù)使用
- android自定義控件和自定義回調(diào)函數(shù)步驟示例
- 深入淺析Android接口回調(diào)機(jī)制
- Android觀察者模式實(shí)例分析
- android開發(fā)中使用java觀察者模式
- Android源碼學(xué)習(xí)之觀察者模式應(yīng)用及優(yōu)點(diǎn)介紹
- 詳解Android中接口回調(diào)、方法回調(diào)
- Android回調(diào)與觀察者模式的實(shí)現(xiàn)原理
相關(guān)文章
android獲取手機(jī)唯一標(biāo)識(shí)的方法
這篇文章主要介紹了獲取安卓的手機(jī)或者平板的唯一標(biāo)識(shí)的方法,需要的朋友可以參考下2014-02-02跨平臺(tái)移動(dòng)WEB應(yīng)用開發(fā)框架iMAG入門教程
這篇文章主要介紹了跨平臺(tái)移動(dòng)WEB應(yīng)用開發(fā)框架iMAG入門教程,iMAG最大的特點(diǎn)是生成各移動(dòng)平臺(tái)的原生代碼,需要的朋友可以參考下2014-07-07Android 實(shí)現(xiàn)電話攔截及攔截提示音功能的開發(fā)
本文主要介紹Android 實(shí)現(xiàn)電話攔截和攔截提示音功能的開發(fā),這里提供實(shí)現(xiàn)代碼和詳細(xì)講解,有需要的小伙伴可以參考下2016-08-08安卓(Android)開發(fā)之統(tǒng)計(jì)App啟動(dòng)時(shí)間
當(dāng)大家要改善APP啟動(dòng)速度優(yōu)化的時(shí)候,首先要知道App的啟動(dòng)時(shí)間,那么改如何統(tǒng)計(jì)時(shí)間呢,下面我們一起來看看。2016-08-08Android關(guān)于WebView中無法定位的問題解決
本篇文章主要介紹了Android關(guān)于WebView中無法定位的問題解決,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2017-10-10Android Room數(shù)據(jù)庫(kù)容易遇到的問題以及解決方法
這篇文章給大家介紹了我們?cè)贏ndroid Room數(shù)據(jù)庫(kù)容易遇到的坑以及解決方法,文中有詳細(xì)的代碼示例供我們參考,具有一定的參考價(jià)值,需要的朋友可以參考下2023-09-09