Java 如何在Android中模拟将函数作为参数传递
我正在将一个API包装器从iOS移植到Android。在iOS包装器中,我们有一个非常大的类,它包含所有可能的API函数。调用函数时,我们将回调方法作为匿名函数传递Java 如何在Android中模拟将函数作为参数传递,java,android,api,Java,Android,Api,我正在将一个API包装器从iOS移植到Android。在iOS包装器中,我们有一个非常大的类,它包含所有可能的API函数。调用函数时,我们将回调方法作为匿名函数传递 我想知道如何在android上做同样的事情。一种方法是让API类实现一个带有processFinish函数的接口,AsyncTask在PostExecute上调用该函数,但是processFinish的实现将有大量的条件,这取决于调用了哪个API函数。在不满足所有这些条件的情况下,我如何做到这一点?一个类似于传入回调的例子,可以用于
我想知道如何在android上做同样的事情。一种方法是让API类实现一个带有processFinish函数的接口,AsyncTask在PostExecute上调用该函数,但是processFinish的实现将有大量的条件,这取决于调用了哪个API函数。在不满足所有这些条件的情况下,我如何做到这一点?一个类似于传入回调的例子,可以用于Android上的api实现,其中包括“消息循环器”和“处理程序” 处理程序可以内联使用,就像函数作为回调传递一样。处理程序实现可以是非常健壮的对象(可运行),正如您可以从这个异步Http中看到的那样 通常,您可以将api划分为对象层次结构,当您在android中“获取消息”时,传入相应的对象,当处理程序被回调时,它可以调用前面提供给处理程序的对象(您的api类)
快速查看一下“定义a”,如果它看起来可能适合您,那么请关注上一个链接中使用http的高级示例。用api对象层次结构替换所有httpclient行为 我相信我想要的答案是匿名函数这似乎不是以android为中心的问题,更像是程序员.se之类的设计模式问题,但如果我站在你的立场上,我会用面向对象的方式来做。拥有一个被每种类型的API调用重写的基函数,并完成它自己的事情。@KasraRahjerdi重写基函数到底是什么意思?如何确定哪一个api调用调用了基函数?很快Java8就会有Lambdas用于此功能-希望Droid也能很快得到它们。谢谢您的输入。看起来处理程序和AsyncTasks在某种程度上是互斥的,我希望尽可能少地编写与线程相关的代码,因此如果可以的话,就坚持使用AsyncTasks。