假设,我们现在有一个线程,在进行下载的任务,程序代码如下:
public void download(String url){ new Thread(new Runnable() { @Override public void run() { String load="我是下载任务"; } }).start(); }当然了,真正下载任务怎么会这么简单。这里就是意思意思就好了。
如果说我们想要得到这样的一个load,我们要怎么做呢?或者说,我要在其他的类里面获得这个值怎么办呢?
一般来说我们有两个办法,一个是在前面定义一个相同类型的变量,然后通过get,set方法,可以传递该值;
第二个就是接口的回调了。
我们先写一个可以回调的接口,代码如下:
public interface CallBack{ public void getResult(String result); }然后结合下前面下载的程序,变成:
public void download(String url,final CallBack callBack){ new Thread(new Runnable() { @Override public void run() { String load="我是下载任务"; callBack.getResult(load); } }).start(); }
接着我们就要去其他类里面调用这个程序,来试试看能不能传递成功:
InterfaceCallback interfaceCallback=new InterfaceCallback(); interfaceCallback.download("下载地址", new InterfaceCallback.CallBack() { @Override public void getResult(String result) { Log.d("test","MainActivity————>"+result); } });
好了大功告成,让我们看下,打印的结果吧:
06-12 11:23:34.806 19963-20051/com.example.administrator.android_interfacecallback D/test: MainActivity————>你得到我了