首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >Android:将函数引用传递给AsyncTask

Android:将函数引用传递给AsyncTask
EN

Stack Overflow用户
提问于 2014-10-05 20:27:46
回答 1查看 15K关注 0票数 18

我是android的新手,非常习惯于web开发。在javascript中,当你想要执行一个异步任务时,你需要传递一个函数作为参数(回调):

代码语言:javascript
复制
http.get('www.example.com' , function(response){
   //some code to handle response
});

我想知道我们是否可以对安卓的AsyncTask做同样的事情,向onPostExecute()方法传递一个函数引用,它就会运行它。

有什么建议吗?

EN

回答 1

Stack Overflow用户

发布于 2014-10-05 21:54:52

在Java中,函数并不像在JavaScript中那样是一等公民。AsyncTask将回调作为类中的方法提供,您应该重写它。

有关AsyncTask的子类以及发出web请求的doInBackground的实现,请参阅Make an HTTP request with android

如果您想使用不同的回调来处理多个HTTP请求,您可以覆盖RequestTask并使用不同的回调实现来实现onPostExecute。您可以使用匿名类来模拟JavaScript回调通常使用的闭包:

代码语言:javascript
复制
new RequestTask(){
    @Override
    public void onPostExecute(String result) {
        // Implementation has read only access to 
        // final variables in calling scope. 
    }
}.execute("http://stackoverflow.com");

如Xaver所示,您还可以为侦听器创建一个成熟的接口。对于我来说,这似乎只有在您希望实现几个默认onPostExecute函数并为特定调用选择其中一个默认实现时才有用。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26202568

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档