您的位置:首页 > 移动开发 > Android开发

android回调机制

2011-09-13 16:03 369 查看
C, C++a或JS里经常有回调方法,它们都是通过指针来实现的。

而JAVA中不允许直接操作指针,那它的回调是如何实现的呢?

答案:它是通过接口(implements)来实现的。

JAVA方法回调是功能定义和功能实现分享的一种手段,是一种耦合设计思想。作为一种架构,必须有自己的运行环境,并且提供用户的实现接口。

例如在Activity中定义了很多生命周期的不同状态要调用的方法,这些方法都是空实现,系统框架要调用,用户也要调用来实现。

下面模拟一下Android中的Activity方法回调思想:

1.Activity接口

package com.maker.test;

//定义接口

public interface Activity{

public void onCreate();

.....

public void onDestory();

}

2.Activity接口的实现类MyActivity

package com.amaker.test

//定义一个类实现Activity接口

public calss MyActivity implements Activity{

@Override//实现方法,简单输出

public void onCreate(){

System.out.println("onCereate");

}

....

@Override//实现方法,简单输出

public void onDestory(){

System.out.println("onDestory");

}

}

3.系统运行环境类AndroidSystem

package com.amaker.test;

//系统运行安装类

public class AndroidSystem{

//定义常量

public static final int CREATE=1;

....

public static final int DESTORY=2;

//运行方法

public void run(Activity a,int state){

switch(state){

case CREATE:

a.onCreate;

break;

....

case DESTORY:

a.onDestory();

break;

}

}

}

4.测试类

package com.amaker.test;

//测试类

publilc class Test{

public static void main(String[] args){

//实例化AndroidSystem

AndroidSystem system = new AndroidSystem();

//实例化MyActivity

Activity a = new MyActivity();

system.run(a,AndroidSystem.CREAATE);

....

system.run(a,AndroidSystem.DESTORY);

}

}

以上可以看出,接口(系统框架)是系统提供的,接口的实现是用户实现的,这样可以达到接口统一,实现不同的效果。

系统在不同的状态“回调”我们的实现类,来达到接口和实现的分类。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: