Android中常见的持久化数据存储方法有三个:文件存储、SharedPreferences存储和数据库存储。文件存储的核心思想是将数据按照streaming的形式保存到本地,这点与C++有共通点。写一个利用文件存储数据的简单实例,重新定义《MPD解析模块在Android中的实现》中提到的parseXMLWithPull(String xmlData)方法,在showResponse()后接着调用Save()方法,将解析数据保存到本地:
private void parseXMLWithPull(String xmlData) { //MPD解析方法
Represent repres = new Represent();//实例化一个Representation对象
String line = "";
try {
XmlPullParserFactory factory = XmlPullParserFactory.newInstance(); //获得一个XMLPULL工厂类的实例
XmlPullParser xmlPullParser = factory.newPullParser(); //获得一个XML解析器的实例
xmlPullParser.setInput(new StringReader(xmlData));
int eventType = xmlPullParser.getEventType();
while (eventType != XmlPullParser.END_DOCUMENT) {
String nodeName = xmlPullParser.getName();
switch (eventType) {// 通过判断事件类型来选择执行不同的代码
// 开始解析某个结点
case XmlPullParser.START_TAG: {
if ("Representation".equals(nodeName)) {//由<Representation开始解析
repres.setId(xmlPullParser.getAttributeValue(null, "id"));
repres.setWidth(x