在一个有返回值的方法里使用了子线程,如何返回子线程中的值,如下代码中,我在子线程获取到了address的值,但是这个方法的返回结果是空,该如何解决?
2017-01-02 11:17
721 查看
public static String getAddress(final InputStream inputStream, final String mobile) { new Thread() { public void run() { try { Log.i(TAG, "inputStream: " + inputStream.available()); String soap = readSoapFile(inputStream, mobile); byte[] data = soap.getBytes(); URL url = new URL( "http://webservice.webxml.com.cn/WebServices/MobileCodeWS.asmx"); HttpURLConnection conn = (HttpURLConnection) url .openConnection(); conn.setDoOutput(true); // 设置允许输出 conn.setConnectTimeout(5 * 1000); // 设置超时时间为5秒 conn.setRequestMethod("POST"); conn.setRequestProperty("Content-Type", "application/soap+xml; charset=utf-8"); conn.setRequestProperty("Content-Length", String.valueOf(data.length)); // 设置长度 OutputStream outputStream = conn.getOutputStream(); outputStream.write(data); outputStream.flush(); outputStream.close(); if (conn.getResponseCode() == 200) { address =parseResponseXML(conn .getInputStream()); // 解析服务器端返回的数据 } System.out.println("address=="+address);//这里是有值 } } catch (Exception e) { Log.e(TAG, e.toString()); System.out.println("获取手机号码归属地失败"); } }; }.start(); System.out.println("addres"+address);//这里返回的是空 return address; }
相关文章推荐
- 在使用Hibernate时,因为一个查询需要更多的表连接而要使用SQL来解决性能问题。然而返回的结果集中包含了没有映射的Entity类中的表字段,在这个SQL中还有使用如何将层次关系的父子结点显示为横行
- Android Studio该如何导入别人的开源库到自己的项目中并使用库中的控件,网上找过方法但是并不能搞定,希望实际问题 实际解决,拯救我这个傻瓜
- 使用MyBatis查询 返回类型为int,但是当查询结果为空NULL,报异常的解决方法
- wap获取手机号码,今天uc开启云加速,用公司的工具类获取是null,但是另外一个项目可以,应该这个项目的工具旧少了一些代码。。,网上找了 方法自己加可以
- 曲线解决CMFCPropertyGridCtrl掩码的bug2009年12月30日 星期三 下午 01:24CMFCPropertyGridCtrl这个控件当用到掩码时,会有问题.解决办法用其他掩码替代.下面是一个IP掩码处理方法.代码如下
- var dataObj=eval("("+data+")");//转换为json对象(解决在ajax返回json格式数据的时候明明正确的获取了返回值但是却就是进不去success方法的问题。格式错误)
- 使用dwr同步调用导致无法获取js方法的返回结果问题的解决办法
- 存储过程中使用RETURN语句返回数值,.Net里用ExecuteScalar方法结果将会导致一个未引用到具体对象的异常
- Visual C#2005——如何使用ToArray方法返回一个强类型数组
- 使用IHTMLDocument3 的getElementById获取控件总是返回空的解决方法
- Visual C#2005——如何使用ToArray方法返回一个强类型数组
- Visual C#2005——如何使用ToArray方法返回一个强类型数组
- 子线程返回前,使循环暂停但不使主线程卡死的办法,等待子线程有返回了之后,才执行主线程下一步代码的方法
- 用户控件包含一个搜索功能,但是在调用页面中按回车时无法直接提交这个表单,只有鼠标点击才提交,如何解决?
- 【Android学习笔记】如何使用Eclipse在Android项目中调用C/C++代码,及遇到的错误解决方法
- java面试题解惑:当一个对象被当作参数传递到一个方法后,此方法可改变这个对象的属性,并可返回变化后的结果,那么这里到底是值传递还是引用传递?
- JSON使用——获取网页返回结果是Json的代码
- 10_9_2从类MyClass中派生一个类MyDervedClass,重写GetString(),使用该方法的基类实现代码从基类中返回一个字符串,但在返回的字符串中添加文本"(output fro)"
- 如何获取一个URL传参编码是UTF-8还是GBK的取巧解决方法