android - JAVA执行完异步回调的问题
本文介绍了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屋!
查看全文