最近做ListView网络图片的异步加载,以及下载网路MP3动态进度显示。看过一些源码都涉及这样的回调,这样节省了很多不必要的重复操作,非常简便。写了一个Demo,够简单的吧.
Demo1.java
package com.demo;import com.demo.Demo2.TestInterface;public class Demo1 { private String demo2Param; private Demo2 demo2 = new Demo2(); public void demo1Test(){ demo2.demo2Test(new TestInterface() { public void method(String para1, String para2) { // TODO Auto-generated method stub demo2Param = para1 + " && "+para2; System.out.println("Print:"+demo2Param); } }); } public static void main(String[] args) { new Demo1().demo1Test(); }}
Demo2.java
package com.demo;public class Demo2 { private String para1 = "IS PARA1"; private String para2 = "IS PARA2"; public void demo2Test(TestInterface testInterface){ testInterface.method(para1,para2); } public interface TestInterface{ public void method(String para1,String para2); }}
你会考虑回调函数和返回函数有何区别?优势在哪里?我只能说具体的优势我现在也不清楚,这些都需要的实际开发中去摸索。但是摆在面前很清晰的一点是,return能返回两个,或者多个值吗?回调函数可以做到!