国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 系統 > Android > 正文

Android實戰教程第八篇之短信備份

2019-12-12 04:43:03
字體:
來源:轉載
供稿:網友

各種手機助手里面都包含了短信備份這一項。短信的本分主要包含四項:內容body、事件date、方式type、號碼address
短信備份~一。使用一種很笨的方式來保存短信到xml文件中,而且保存在外部存儲。后續會有:短信備份~二(xml序列化器);短信備份~三(內容提供者獲取短信xml備份);短信備份~四(json方式備份數據庫短信)。備份的方式越來越高效,比較不同存儲方式。

很顯然,初次介紹短信備份,以一種簡單笨拙的方式,且不涉及內容提供者,虛擬10條短信。

短信的保存,要以對象的形式保存。因此創建一個javabean類: 

package com.itydl.createxml.domain;  public class Message {   private String body;  private String date;  private String address;  private String type;  public String getBody() {   return body;  }  public void setBody(String body) {   this.body = body;  }  public String getDate() {   return date;  }  public void setDate(String date) {   this.date = date;  }  public String getAddress() {   return address;  }  public void setAddress(String address) {   this.address = address;  }  public String getType() {   return type;  }  public void setType(String type) {   this.type = type;  }  public Message(String body, String date, String address, String type) {   super();   this.body = body;   this.date = date;   this.address = address;   this.type = type;  }     } 

接著在mainactivity中代碼:

package com.itydl.createxml;  import java.io.File; import java.io.FileNotFoundException; import java.io.FileOutputStream; import java.util.ArrayList; import java.util.List;  import com.itheima.createxml.domain.Message;  import android.os.Bundle; import android.app.Activity; import android.view.Menu; import android.view.View;  public class MainActivity extends Activity {   List<Message> smsList;//存取一條短信得內容的對象  @Override  protected void onCreate(Bundle savedInstanceState) {   super.onCreate(savedInstanceState);   setContentView(R.layout.activity_main);      //虛擬10條短信   smsList = new ArrayList<Message>();   for(int i = 0; i < 10; i++){    Message sms = new Message("小志好棒" + i, System.currentTimeMillis() + "", "138"+i+i, "1");    smsList.add(sms);//并把短信存儲到集合里面去。   }  }  //點擊按鈕觸發備份,一IO流方式存儲  public void click(View v){   //在內存中把xml備份短信的格式拼接出來   StringBuffer sb = new StringBuffer();   sb.append("<?xml version='1.0' encoding='utf-8' standalone='yes' ?>");   sb.append("<messages>");   for (Message sms : smsList) {    sb.append("<sms>");        sb.append("<body>");    sb.append(sms.getBody());//如果發短信的人吃飽了沒事干,在短信里加上了<body>,這樣就會報錯了。    sb.append("</body>");        sb.append("<date>");    sb.append(sms.getDate());    sb.append("</date>");        sb.append("<type>");    sb.append(sms.getType());    sb.append("</type>");        sb.append("<address>");    sb.append(sms.getAddress());    sb.append("</address>");        sb.append("</sms>");   }   sb.append("</messages>");      File file = new File("sdcard/sms.xml");//把短信這種性質的信息,保存在外部存儲空間里   try {    FileOutputStream fos = new FileOutputStream(file);    fos.write(sb.toString().getBytes());    fos.close();   } catch (Exception e) {    // TODO Auto-generated catch block    e.printStackTrace();   }  }  } 

因為涉及對sd卡的寫操作,因此在清單文件中記得加入權限:

復制代碼 代碼如下:
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> 

運行程序,點擊短信備份按鈕。在sd卡導出xml文件,用瀏覽器打開。即就是短信所有信息的備份。
但是,這種方式顯得很笨拙,而且當用戶短信信息里面有一個<body>標簽的時候,上一次的<body>就沒有尾節點與之匹配。就會報錯,瀏覽器沒法解析這個文件。這種方式也不會使用,知識提供一種思路。后續先介紹xml序列化器生成xml文件,就不會遇到這種問題。

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持武林網。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 渭南市| 泗水县| 南皮县| 昂仁县| 萨嘎县| 永吉县| 都兰县| 广河县| 延吉市| 望江县| 尉犁县| 德化县| 定襄县| 垫江县| 花莲县| 靖江市| 曲松县| 锦州市| 含山县| 岑溪市| 泸州市| 石棉县| 田东县| 玛纳斯县| 晋中市| 庆安县| 阿勒泰市| 偏关县| 连云港市| 西藏| 彭山县| 滨海县| 察雅县| 吉林省| 房产| 登封市| 和平县| 双峰县| 新乡市| 临海市| 内乡县|