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);
}
}
以上可以看出,接口(系统框架)是系统提供的,接口的实现是用户实现的,这样可以达到接口统一,实现不同的效果。
系统在不同的状态“回调”我们的实现类,来达到接口和实现的分类。
而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);
}
}
以上可以看出,接口(系统框架)是系统提供的,接口的实现是用户实现的,这样可以达到接口统一,实现不同的效果。
系统在不同的状态“回调”我们的实现类,来达到接口和实现的分类。
相关文章推荐
- android事件监听回调机制
- android事件监听回调机制
- 回调机制在 Android 监听用户界面操作中的体现
- Android开发学习之路-回调机制学习笔记
- Android回调机制
- (转)Android之接口回调机制
- Android的事件处理机制(一)------基于回调机制的事件处理
- Java&Android中的回调机制
- Android 回调接口是啥,回调机制详解
- 弄明白Android 接口回调机制
- Android回调机制
- 从Java回调机制分析Android动态加载布局过程中出现的IllgalStateException
- Android回调机制
- android回调机制
- 回调机制在 Android 监听用户界面操作中的体现
- Android回调机制
- Android回调机制总结
- 弄明白Android 接口回调机制
- 【Java/Android】对回调机制的理解
- 对Android 回调机制的一些理解