将信息持久化到xml文件中
/* * 把联系人的集合信息,以xml的格式,写到一个输出流中 */ public static void saveSms(List<SmsInfo> infos , OutputStream os) throws Exception{ XmlSerializer serializer = Xml.newSerializer(); serializer.setOutput(os, "UTF-8"); serializer.startDocument("UTF-8", true); serializer.startTag(null, "smss"); for (SmsInfo info : infos){ serializer.startTag(null, "sms"); serializer.startTag(null, "address"); serializer.text(info.getAddress()); serializer.endTag(null, "address"); serializer.startTag(null, "body"); serializer.text(info.getBody()); serializer.endTag(null, "body"); serializer.startTag(null, "date"); serializer.text(info.getDate()); serializer.endTag(null, "date"); serializer.startTag(null, "type"); serializer.text(info.getType()); serializer.endTag(null, "type"); serializer.endTag(null, "sms"); } serializer.endTag(null, "smss"); serializer.endDocument(); //注意 一定要flush这个 输出流 os.flush(); os.close(); } //调用上面的方法 new Thread(){ @Override public void run() { // TODO Auto-generated method stub List<SmsInfo> smsInfos = SmsUtil.getSmsInfos(getApplicationContext()); File file = new File("/sdcard/backsms.xml"); try { FileOutputStream fos = new FileOutputStream(file); SmsUtil.saveSms(smsInfos, fos); Looper.prepare(); Toast.makeText(getApplicationContext(), "备份完成", 1).show(); Looper.loop(); } catch (Exception e) { // TODO Auto-generated catch block e.printStackTrace(); } super.run(); } }.start();