说起Android的回调相信大家都不陌生,在你写的第一个Android程序中就运用到了回调机制例如onCreate()方法.其实在平常编写Android程序时也会遇到很多的回调方法例如:onActivityResult(),OnClickListener(),等...
一个回调机制就像:"你妈妈叫你去买盐,然后你去买盐,买完盐回来,你告诉你妈妈你把盐买回来了让你妈开始炒菜,",在这个事件之中"你告诉你妈妈你把盐买回来让你妈开始炒菜".这就是回调了你妈的炒菜方法.
来个图给大家清楚解释一下:
下面我们用代码来实现以下这个过程:
public class Mother {
public Mother(Son son) {
son.buySalt(this, "买盐去");
}
public void cooking() {
System.out.println("妈:\"炒菜去了~~\"");
}
public static void main(String[] args) {
Son son = new Son();
new Mother(son);
}
}
public class Son {
public void buySalt(Mother mother, String string) {
System.out.println("儿子:\"买盐去了~~\"");
System.out.println("正在路上...");
System.out.println("儿子:\"买盐回来了~~~妈炒菜去!!\"");
mother.cooking();
}
}
运行结果如下:
以上所示的这些过程正是java中回调过程的原理.我们在编写Android程序时大多数情况下我们并没有去实现这一过程,我们主要是在重写回调方法例如上面的cooking()方法那么在Android中我们大多数重写的就是onCreate(),onActivityResult(),方法.
所以我们在理解Android中的回调方法时我们主要是给了程序遇到这个问题时他应该去做什么.而不用管程序什么时间去调用它,当我们用户发生了某种点击事件那么这时这个方法就会启动.这个大概就是Android的回调机制.
如有错误,敬请指出.