你可以试试,把访问WEBSERVICE这部分代码,放到线程中调用;
有的时候android版本高了。访问INTENT都需要线程访问。
有的时候android版本高了。访问INTENT都需要线程访问。
解决方案 »
- 谁有pudn的账号,跪求下个东西,感激不尽
- [较深入问题,请大虾回答]Binder机制如何传递对象引用?
- 百度,谷歌地图 精确到XX米 这个是怎么实现的?
- 求助,写了个android摄像头程序不断报错啊
- view.layout(int, int, int, int)设置view的大小和位置不成功
- android怎么将一个文本文件写入pc机
- android数据库问题
- 求助:如何打开SDK中自带的sample。。。。。。他们都说标题长点好
- 如何查看Android.jar里面的XML文件
- 使用adb命令或其他方法获取应用程序电量消耗情况
- 百度地图PlaceCaterActivity空指针问题
- android google calendar源码
WS端不应该返回dataset,那样android端好像处理有问题;
你应该把WS端dataset中取出数据转换成JSON的数据格式或者XML数据格式,再返回到android端,这样解析相对简单的多。
WS端不应该返回dataset,那样android端好像处理有问题;
你应该把WS端dataset中取出数据转换成JSON的数据格式或者XML数据格式,再返回到android端,这样解析相对简单的多。
目前该问题已经解决了,解决办法贴出来,以供后来者借鉴:
1.web service中返回值为string类型,其中参数为 (string Filename,byte[] data)其中byte[]是从android中传过来的字节数组,filename是传入的上传之后在服务器上的文件名字。
2、在android端,String uploadBuffer = new String(Base64.encode(baos.toByteArray(), count)); //进行Base64编码 这一句代码去掉,加上buffer=baos.toByteArray();
connectWebServicetwo(fileName,buffer);
3.在connectWebServicetwo函数中,try catch中改为 try
{
httpTranstation.call(soapAction, envelope);
org.ksoap2.serialization.SoapPrimitive so= (org.ksoap2.serialization.SoapPrimitive) envelope.getResponse();
// Object so=(Object)envelope.bodyIn;
ret=Boolean.valueOf( so.toString());
return ret;
}catch (Exception e) {
e.printStackTrace();
}
红色字体是关键部分。这样修改之后 就能正常运行了。很感谢热心网友的回答。