服务外包中的各种问题总结(1)

来源:互联网 发布:诺基亚e63怎样下载软件 编辑:程序博客网 时间:2024/05/02 00:42

之前一个月参加了省赛的服务外包,博客也没时间写,刚好现在闲下来总结下之前一个月写安卓端遇到的问题。


1、使用ksoap2中的问题

①(SoapObject) envelope.getResponse() 无法强制转换类型

网上百度的结果都是说强制转换成Object的,但是我在实际操作的时候,还是需要转换成SoapObject来读取xml里的数据,当然用json来读取也是个方法,但是我想我用了这个库,还要自己写解析,还不如一开始就自己写soap的操作(其实一开始自己写的,但是实用性貌似有点差)。

经过自己的多次调试,得到一种比较折中的解决办法。如果xml中返回的是一个数组或者包含多个字段的数据,可以直接使用return (SoapObject) envelope.getResponse();  来获取数据。当调用webService只返回一个是否调用成功的字段时,则return envelope.getResponse();然后调用.toString()来判断是否调用成功。

②调用webService出现“请提供有效SOAP参数”等错误
首先自己应该在客户端查看是否少了需要传递的字段,如果你确认不是客户端的错误时,那基本上很有可能就是服务器端的问题了。我因为服务器端的同学改了WebService中debug的值,导致我调了一天都不知道哪里错了,而他和我说他只添加了方法什么都没改,最后我真的是保证自己一点问题都没,他才开始查错误,进度就是这么给拖沓的。还有几次,有时改了方法中的字段名,有时改了方法名,而他都没和我说。。。所以当服务器有修改的时候一定要叫服务器端的同学和你说清楚,不然你会被整的很惨的,切身体会啊!!!

2、关于startActivityForResult后返回值的问题

当我同时调用系统的activity和自己的activity时,如果在onActivityResult中最前面的代码加一句if(resultCode != RESULT_OK) return;那么自己的activity中由于resultCode没有赋值就会直接跳过后面处理的代码段,我的解决办法就是把自己activity的代码处理段放到resultCode != RESULT_OK   判断之前。我想应该还有其他办法,没查过,如果有同学知道,可回复。

3、逻辑代码和界面代码一定要分开

之前写安卓都是自己一个人,而且一般不会有太多界面,代码量也不多。这次比赛中,代码量一上去,以前的陋习导致项目debug的时候要找很久,混淆在一起都分不清哪部分是哪部分,比赛后半段,我都尽量将逻辑代码和界面代码分开处理,调用较多的方法直接封装便于调用。
0 0