今天从书上和CSDN上找了几个关于android调用webservice的例子,这些例子从代码来看,没任何错误,但是就是运行不成功。分析了android调用web接口的写法,发现这些例子在调用的时候没单独开一个线程来运行的问题。下面把CSDN上下载的例子“ Android查询电话号码”的主要改动代码贴出来,希望对学习android的初学者有帮助。
FutureTask<String> futureTask = new FutureTask<String>( new Callable<String>() { @Override public String call() throws Exception { try { // 调用WebService transport.call(soapAction, envelope); if (envelope.getResponse() != null) { // 获取返回的数据 SoapObject object = (SoapObject) envelope.bodyIn; // 获取返回的结果 String result = object.getProperty(0) .toString(); return result; } } catch (Exception e) { e.printStackTrace(); } return null; } }); new Thread(futureTask).start(); // 将WebService返回的结果显示在TextView中 try { String result=futureTask.get(); resultView.setText(result); } catch (InterruptedException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (ExecutionException e) { // TODO Auto-generated catch block e.printStackTrace(); }
CSDN上下载的一些关于Android程序调用Webservice运行不成功的问题
原文地址:http://blog.csdn.net/wenyan07/article/details/39736745