[原]Android中XML的三种解析方式 |
XML解析方式Android 提供了三种解析XML的方式:SAX(Simple API XML), DOM(Document Object Model), Pull 1. SAX解析方式SAX(Simple API for XML)解析器是一种基于事件的解析器,事件驱动的流式解析方式是,从文件的开始顺序解析到文档的结束,不可暂停或倒退。
2.创建函数 parseXMLWithSAX 代码如下: 创建函数 parseXMLWithSAX 调用的时候只需传入xmlData即可 **【注:在Android API中,另外提供了Android.util.Xml类,同样可以解析XML文件,使用方法类似SAX,也都需编写Handler来处理XML的解析,但是在使用上却比SAX来得简单 ,如下所示: 2. Pull 方式解析PULL解析器的运行方式和SAX类似,都是基于事件的模式。不同的是,在PULL解析过程中返回的是数字,且我们需要自己获取产生的事件然后做相应的操作,而不像SAX那样由处理器触发一种事件的方法,执行我们的代码。
优点: PULL解析器小巧轻便,解析速度快,简单易用,非常适合在Android移动设备中使用,Android系统内部在解析各种XML时也是用PULL解析器,Android官方推荐开发者们使用Pull解析技术。Pull解析技术是第三方开发的开源技术,它同样可以应用于JavaSE开发。 3. DOM方式解析DOM,即对象文档模型,它是将整个XML文档载入内存(所以效率较低,不推荐使用),每一个节点当做一个对象,结合代码分析。DOM实现时首先为XML文档的解析定义一组接口,解析器读入整个文档,然后构造一个驻留内存的树结构,这样代码就可以使用DOM接口来操作整个树结构。 由于DOM在内存中以树形结构存放,因此检索和更新效率会更高。但是对于特别大的文档,解析和加载整个文档将会很耗资源。 当然,如果XML文件的内容比较小,采用DOM是可行的。
总结:三种方式的总结比较SAX是一个用于处理XML事件驱动的“推”模型, DOM是一种文档对象模型,DOM可以以一种独立于平台和语言的方式访问和修改一个文档的内容和结构。 Pull解析和Sax解析很相似,Pull解析和Sax解析不一样的地方是pull读取xml文件后触发相应的事件调用方法返回的是数字,还有pull**可以在程序中控制想解析到哪里就可以停止解析。** DOM方式最直观和容易理解,但是只适合XML文档较小的时候使用,而SAX方式更适合在移动终端系统中使用,因为相比DOM占用内存少,适合处理比较大的XML文档,最后的Pull方式使用场合和SAX类似,但是更适合需要提前结束XML文档解析的场合。
作者:WILLMAX_007 发表于2016/5/15 14:30:03
原文链接
阅读:1120 评论:0
查看评论
|
[原]Android Activity 生命周期 |
1.每个活动在其生命周期最多有四种状态* 运行状态 ---------活动处于栈顶,可见,可交互 * 暂停状态 ---------活动不在栈顶,但可见,不可交互 * 停止状态 ---------活动不再栈顶,不可见,不可交互,有可能被回收 * 销毁状态 ---------活动从栈中移除 2.活动的生命周期Activity中定义了七个回调方法,覆盖了活动的生命周期的每一个环节。七个方法的流程图如下:onCreat(): 在活动第一次被创建时调用,完成活动初始化。 onStart(): 在活动由不可见变为可见的时候调用 onResume(): 在准备好和用户交互的时候调用 onPause(): 在准备去启动或者恢复另一个活动的时候调用 onStop(): 在活动完全不可见时调用,与onPause()的区别在于,如果启动的新活动是一个对话框的活动,onPause()方法会得到执行,onStop()方法不会执行 onDestroy(): 在活动被销毁之前调用 onRestart(): 在活动由停止状态变为运行状态时调用。即活动的重新启动
3. 三种生存期1.完整生存期onCreate() -------> onDestroy()2.可见生存期(可见不一定可交互)onStart() ----> onStop()3.前台生存期 (可交互)onResume() --------> onPause() |