Android實(shí)戰(zhàn)教程第九篇之短信高效備份
Android短信高效備份這篇文章,承接上一篇。使用高效的方式備份短信——xml序列化器。
存儲(chǔ)短信,要以對(duì)象的方式存儲(chǔ)。首先創(chuàng)建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中的diamante如下:
package com.itydl.xmlserializer;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import org.xmlpull.v1.XmlSerializer;
import com.itheima.createxml.domain.Message;
import android.os.Bundle;
import android.app.Activity;
import android.util.Xml;
import android.view.Menu;
import android.view.View;
//為了更好地保存不同,且負(fù)責(zé)的數(shù)據(jù),使用xml序列器
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);
}
}
public void click(View v){
//使用xml序列化器生成xml文件。序列化器會(huì)把亂七八糟的東西(短信里有標(biāo)簽屬性)過(guò)濾掉
//1.拿到序列化器對(duì)象
XmlSerializer xs = Xml.newSerializer();
//2.初始化.因?yàn)樯婕暗絰ml文件,因此初始化也包含文件名和路徑
File file = new File("sdcard/sms2.xml");
try {
FileOutputStream fos = new FileOutputStream(file);
//enconding:指定用什么編碼生成xml文件
xs.setOutput(fos, "utf-8");//setOutput(OutputStream os, String encoding) ,編碼方式默認(rèn)u8
//3.開(kāi)始生成xml文件
//enconding:指定頭結(jié)點(diǎn)中的enconding屬性的值
xs.startDocument("utf-8", true);//生成頭結(jié)點(diǎn)(最高一行),startDocument(String encoding, Boolean standalone)
xs.startTag(null, "message");//生成一個(gè)根節(jié)點(diǎn),開(kāi)始標(biāo)簽節(jié)點(diǎn)
for (Message sms : smsList) {
xs.startTag(null, "sms");
xs.startTag(null, "body");//start和end一對(duì)一對(duì)的寫(xiě)。還有四個(gè)子節(jié)點(diǎn)
xs.text(sms.getBody() + "<body>");//這樣不會(huì)報(bào)錯(cuò)。而是把<body>當(dāng)做了內(nèi)容了
xs.endTag(null, "body");
xs.startTag(null, "date");
xs.text(sms.getDate());
xs.endTag(null, "date");
xs.startTag(null, "type");
xs.text(sms.getType());
xs.endTag(null, "type");
xs.startTag(null, "address");
xs.text(sms.getAddress());
xs.endTag(null, "address");
xs.endTag(null, "sms");
}
xs.endTag(null, "message");
//告訴序列化器,文件生成完畢
xs.endDocument();
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
最后也要記得加入權(quán)限:
可見(jiàn)這種方式解決了前面遇到的問(wèn)題,而且高效了很多。
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
- Android實(shí)現(xiàn)支持進(jìn)度條顯示的短信備份工具類
- Android接收和發(fā)送短信的實(shí)現(xiàn)代碼
- Android使用MobSDK短信驗(yàn)證
- Android實(shí)現(xiàn)短信驗(yàn)證碼獲取自動(dòng)填寫(xiě)功能(詳細(xì)版)
- Android實(shí)現(xiàn)短信驗(yàn)證碼自動(dòng)攔截讀取功能
- Android開(kāi)發(fā)工程中集成mob短信驗(yàn)證碼功能的方法
- Android手機(jī)號(hào)注冊(cè)、綁定手機(jī)號(hào)獲取短信驗(yàn)證碼實(shí)例
- Android獲取和讀取短信驗(yàn)證碼的實(shí)現(xiàn)方法
- Android如何通過(guò)手機(jī)自動(dòng)獲取短信驗(yàn)證碼
- android教程之intent的action屬性使用示例(intent發(fā)短信)
相關(guān)文章
Android網(wǎng)格布局GridView學(xué)習(xí)使用
這篇文章主要為大家詳細(xì)介紹了Android網(wǎng)格布局GirdView的學(xué)習(xí)使用,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-12-12
Android實(shí)現(xiàn)短視頻畫(huà)心效果
這篇文章主要為大家詳細(xì)介紹了Android實(shí)現(xiàn)短視頻畫(huà)心效果,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-05-05
發(fā)布?Android?library?到?Maven?解析
這篇文章主要介紹了發(fā)布?Android?library到Maven解析,文章圍繞主題展開(kāi)詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下2022-09-09
Flutter狀態(tài)管理Provider的使用示例詳解
這篇文章主要為大家介紹了Flutter狀態(tài)管理Provider的使用示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-11-11
Android禁止EditText自動(dòng)彈出軟鍵盤(pán)的方法及遇到問(wèn)題
這篇文章主要介紹了Android禁止EditText自動(dòng)彈出軟鍵盤(pán)的方法及遇到問(wèn)題,需要的朋友可以參考下2018-07-07
用原生VideoView進(jìn)行全屏播放時(shí)的問(wèn)題
本篇文章主要介紹了用原生VideoView進(jìn)行全屏播放時(shí)的問(wèn)題,具有一定的參考價(jià)值,下面跟著小編一起來(lái)看下吧2017-01-01

