如何模拟在Android中将函数作为参数传递

时间:2013-10-21 15:25:47

标签: java android api

我正在将iOS封装器从iOS移植到Android。在iOS包装器中,我们有一个非常大的类,它包含所有可能的API函数。当我们调用一个函数时,我们将回调方法作为匿名函数传递。

我想知道如何在android中做同样的事情。一种方法是让API类实现一个带有processFinish函数的接口,AsyncTask调用onPostExecute,但processFinish的实现将有很多条件,具体取决于调用的API函数。如果没有满足所有这些条件,我该怎么做?

2 个答案:

答案 0 :(得分:0)

在Android上用于api实现的传递回调的一个模拟涉及'message looper'和'handlers'。

处理程序可以像函数作为回调一样传递的方式内联使用。从这个异步Http example可以看出,处理程序实现可以是非常健壮的对象(可运行)。

一般情况下,您可以将api划分为对象层次结构,当您在android中获取消息时,传入适当的对象,当处理程序被回调时,它可以调用对象(您的api类)早先提供给处理程序。

快速查看“定义handler”,如果它看起来可能适用于您,请关注上一个链接中使用http的高级示例。用您的api对象层次结构替换所有httpclient行为。

答案 1 :(得分:0)

我相信我要找的答案是匿名函数