之前在其他语言看到函数指针的时候整个人都大为惊艳,怎么可以这么简单.把方法作为一个参数传递到另一个方法然后在处理完逻辑之后直接调用这个方法来形成回调。而可惜我大java竟然不支持。
又是一句how to play。
没有函数指针没关系,我们引入callback来实现他
既然要谈回调,那我们就来简单说下什么是回调。
最简单的一个例子,我们在银行和去一些餐厅吃饭的时候第一件事就是去领号,而不像买火车票一样要站在那里拍着长长的队,我们可以坐在一边静静地等待着叫到我们的号。
你可以认为我们就是等待被执行的方法,而在那里排长队就是主线程柱塞在那里等待,常规方法是我们需要开启一条线程来执行。然后在线程执行完毕后通过hanlder来执行。
但是后多时候我们的逻辑处理会放在专门的工具类来执行。这就增加了难度。这个时候回调就完美解决了这个问题。
其实你在写android的时候天天都在用回调。生命周期的相关方法就可以认为是底层有一个处理生命周期的状态机,当状态机处理到相应的生命周期的时候回调了对应的方法。已经所有的监听器都是同一个道理。这些都是系统写好了的回调。
说了这么多,我们一起来看看callback要怎么实现吧。
在这里我们写个最简单的回调的例子。(http请求)
public interface HttpCallback {
public void onResult(int code, Object da