android - JAVA执行完异步回调的问题

查看:145
本文介绍了android - JAVA执行完异步回调的问题的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

先放个图:

没有JAVA基础,初学android开发,想法是这个样子的:
有很多模块需要重复用到获取HTTP的数据,所以就做成了一个函数在需要的时候调用,但由于HTTP是异步的不能立刻获取到数据并执行A端代码,请教如何解决?

A是一段执行函数代码

findViewById(R.id.button1).setOnClickListener(new OnClickListener() {
    public void onClick(View view) {
       http_post("网址");
       //如何获取到异步的数据并进行下一步的数据处理操作?
   
    }

});

B代码是一个函数

//通过HTTP(AsyncHttpClient)获取服务端的的数据(B代码有删节)

public static void http_post(String URL) {

    client.post(url, params, new AsyncHttpResponseHandler() {

        public void onSuccess(int statusCode,String response) {
            if (statusCode == 200) {
                //在这里如何将数据返回到A的代码?
            }
        }
        public void onFailure(Throwable e) {
           
        }
    });

冒昧邀请了几位大大,劳烦百忙之余给小弟解答一下。。。谢谢。

解决方案

谢邀,然而不懂android……不过类似js的ajax请求一样,你可以传一个callback函数进去,或者用消息-订阅机制,或者用监听模式。

假设是callback函数,可以如下:

public interface DoSomethingAfterPost {
    void doSomthing(String data);//返回类型和传什么参数进去由你的业务决定
}

public static void http_post(String URL, DoSomethingAfterPost callback) {
    client.post(url, params, new AsyncHttpResponseHandler() {
        public void onSuccess(int statusCode,String response) {
            if (statusCode == 200) {
                //在这里如何将数据返回到A的代码?
                callback(response);
            }
        }
        public void onFailure(Throwable e) {
           
        }
    });
}

这篇关于android - JAVA执行完异步回调的问题的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆