解决方案 »
- Android中一个项目中要建多个Activity除了第一次建的Activity外其它的Activity是如何建的
- 如何拦截android手机上声音控制
- android 自动更新APK 弹出对话框问题
- 跪求 z4root ZergRush Gingerbreak 源代码!!
- 如何通过CMWAP连接WAP网站跳过移动资费提示
- 关于android定时播放视频的问题
- 获取手机支持的视频编码方式和视频格式
- 如何将WIFI扫描到的信息自动添加到sqlite
- android_socket_速度只有560K字节/秒
- android.view.MotionEvent的事件触发来源的问题?
- 按钮的子菜单
- android studio编译C++问题
全局变量也是空的,因为不是在一个线程里面,解决方法是:
public static String getAddress (final InputStream inputStream, final String mobile) {
Thread thread = 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);
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());
}
} catch (Exception e) {
}
};
};
thread.start();
try { thread.join(); } catch (Exception e) {}
if(address !=null){
return address ;
}
return null ;
}
全局变量也是空的,因为不是在一个线程里面,解决方法是:
public static String getAddress (final InputStream inputStream, final String mobile) {
Thread thread = 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);
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());
}
} catch (Exception e) {
}
};
};
thread.start();
try { thread.join(); } catch (Exception e) {}
if(address !=null){
return address ;
}
return null ;
}
我一般有线程的方法都不会给方法体返回值,在线程里的http有请求返回之后,通过handler发消息去继续往下执行其他步骤。