Android进阶(十九)AndroidAPP开发问题汇总(三)
Java解析XML的几种方式:
http://inotgaoshou.iteye.com/blog/1012188
从线程返回数据的两种方法:
http://www.blogjava.net/nokiaguy/archive/2009/03/19/260745.html
一般来说获取服务端数据流程是这样的:
1,跟服务端开发人员确定服务端接口使用的协议,是http请求还是webservice。根据协议不同你要在手机端使用不同的方式去请求数据。
2,确定服务端返回给你的数据格式,一种是json格式。一种是xml。一般来说就用这两个格式,确定格式之后在你请求服务端数据之后,将返回的数据解析成你想要的格式数据。
这样就能获取你想要的数据了。详情就要跟你服务端人员沟通过之后再去了解要学习http请求还是websevice。以及解析xml或者json的方法。
相关知识点:
1.正则表达式
2.Json
3. JAX-WS创建Web服务
4.加拦截器:
http://www.360doc.com/content/12/1127/10/1073512_250488426.shtml
1.序列化的方式来减少网络传输量
2.如何将服务器端返回的数据返回给客户端
3.将数据序列化
4.软件的框架设计模式:MVC
5.泛型
注:1.一个类名只能调用静态方法
Q:
1.服务器端返回的Soap协议中的数据在客户端解析后出现错误!
A:其实并不是这个问题。而是自己的程序逻辑有问题。排错能力太差。
注:客户端与服务端均需建立相应的对象,其属性值均应相同,因为在涉及到对象与Json的转换时,其规则是按照对象属性名作为相应的key来进行客户端与服务端的匹配。其实Json形式的对象实质应该是map组合。
之所以会出现以下错误,是因为数据库中字段的名称有问题,更改一下字段名就可以解决问题。
Android中出现错误 Error: ShouldNotReachHere():
http://hi.baidu.com/buvbgspdppbdhsq/item/5e3c4fc7235e47dcee183bc8
Q:又出现了上面的错误,自己的开发环境有问题,JDK的配置有问题。
A:应该是JDK与Eclipse的版本不匹配问题造成的,应该都是64位或32位的.
java的安装路径在”C:\Program Files (x86)”,证明这是一个32位的软件,版本不匹配。
JSON 即 JavaScript Object Natation,它是一种轻量级的数据交换格式,非常适合于服务器与 JavaScript 的交互。JSON是一种取代XML的数据结构,和xml相比,它更小巧但描述能力却不差,由于它的小巧所以网络传输数据将减少更多流量从而加快速度,
那么,JSON到底是什么?
JSON就是一串字符串 只不过元素会使用特定的符号标注。
{} 双括号表示对象
[] 中括号表示数组
"" 双引号内是属性或值
: 冒号表示后者是前者的值(这个值可以是字符串、数字、也可以是另一个数组或对象)
所以 {"name": "Michael"} 可以理解为是一个包含name为Michael的对象
而[{"name": "Michael"},{"name": "Jerry"}]就表示包含两个对象的数组
当然了,你也可以使用{"name":["Michael","Jerry"]}来简化上面一部,这是一个拥有一个name数组的对象
ps:现在还有很多人存在一些误区,为什么{name:'json'}在检验时通过不了,
那是因为JSON官网最新规范规定
如果是字符串,那不管是键或值最好都用双引号引起来,所以上面的代码就是{"name":"json"}
不要反驳,官网就是这么定义的。
参考网址:
http://www.ibm.com/developerworks/cn/web/wa-lo-json/
网络爬虫:
http://www.cnblogs.com/wawlian/archive/2012/06/18/2554072.html
一种从JSON数据创建Java类的高效办法:
http://blog.****.net/chszs/article/details/12585791
使用Gson进行json数据转换(list to json 和json to list):
http://huyizizhen.iteye.com/blog/1453621
一个java处理JSON格式数据的通用类:
http://blog.****.net/lijian820708/article/details/7191262
Unrecognized Windows Sockets error: 0: JVM_Bind 异常解决办法
通过Eclipse启动Tomcat时,抛出异常java.net.SocketException: Unrecognized Windows Sockets error: 0: JVM_Bind。此异常的原因是服务器端口被占用
其解决办法包括以下两种:
一:更改服务器的端口号;
二:关闭占用当前占用该端口的进程
疑惑:
1. 使用微信的扫一扫功能,就能够很好的将正规商品的信息获得,信息量很大,而自己的程序中确不能实现,说明自己的程序还有很大问题。
2. Petri网分析
3. Spark技术
4. 微信支付平台如何交易
5. 低调做事,高调做人
解惑:
1.
4. O2O即Online To Offline,也即将线下商务的机会与互联网结合在了一起,让互联网成为线下交易的前台。这样线下服务就可以用线上来揽客,消费者可以用线上来筛选服务,还有成交可以在线结算,很快达到规模。
B2B(Business To Business),是指一个互联网市场领域的一种,是企业对企业之间的营销关系。它将企业内部网,通过B2B网站与客户紧密结合起来,通过网络的快速反应,为客户提供更好的服务,从而促进企业的业务发展。
1)O2O更侧重服务性消费(包括餐饮、电影、旅游、健身、租房等);B2C更侧重购物(实物商品、电器、服饰等);2)O2O的消费者到现场获得服务,涉及客流;B2C的消费者待在办公室或家里,等货上门,涉及物流;3)O2O中库存是服务,B2C中库存是商品;4)O2O服务是本地化,B2C是全网络。
5.
http://www.lz13.cn/weirenchushi/6634.html
注:
1. 在图书(识别ISBN)方面存在BUG!
2. 分享书签不可使。
VISIBLE:设置控件可见
INVISIBLE:设置控件不可见
GONE:设置控件隐藏
而INVISIBLE和GONE的主要区别是:当控件visibility属性为INVISIBLE时,界面保留了view控件所占有的空间;而控件属性为GONE时,界面则不保留view控件所占有的空间。
1、不设置Activity的android:configChanges时,切屏会重新调用各个生命周期,切横屏时会执行一次,切竖屏时会执行两次。
2、设置Activity的android:configChanges="orientation"时,切屏还是会重新调用各个生命周期,切横、竖屏时只会执行一次。
3、设置Activity的android:configChanges="orientation|keyboardHidden"时,切屏不会重新调用各个生命周期,只会执行onConfigurationChanged方法
FLAG_ACTIVITY_CLEAR_WHEN_TASK_RESET
如果设置,这将在Task的Activity stack中设置一个还原点,当Task恢复时,需要清理Activity。也就是说,下一次Task带着FLAG_ACTIVITY_RESET_TASK_IF_NEEDED标记进入前台时(典型的操作是用户在主画面重启它),这个Activity和它之上的都将关闭,以至于用户不能再返回到它们,但是可以回到之前的Activity。 这在你的程序有分割点的时候很有用。例如,一个e-mail应用程序可能有一个操作是查看一个附件,需要启动图片浏览Activity来显示。这个Activity应该作为e-mail应用程序Task的一部分,因为这是用户在这个Task中触发的操作。然而,当用户离开这个Task,然后从主画面选择e-mail app,我们可能希望回到查看的会话中,但不是查看图片附件,因为这让人困惑。通过在启动图片浏览时设定这个标志,浏览及其它启动的Activity在下次用户返回到mail程序时都将全部清除。