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)簽屬性)過濾掉
//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.開始生成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),開始標(biāo)簽節(jié)點(diǎn)
for (Message sms : smsList) {
xs.startTag(null, "sms");
xs.startTag(null, "body");//start和end一對(duì)一對(duì)的寫。還有四個(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)限:
可見這種方式解決了前面遇到的問題,而且高效了很多。
以上就是本文的全部?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)填寫功能(詳細(xì)版)
- Android實(shí)現(xiàn)短信驗(yàn)證碼自動(dòng)攔截讀取功能
- Android開發(fā)工程中集成mob短信驗(yàn)證碼功能的方法
- Android手機(jī)號(hào)注冊(cè)、綁定手機(jī)號(hào)獲取短信驗(yàn)證碼實(shí)例
- Android獲取和讀取短信驗(yàn)證碼的實(shí)現(xiàn)方法
- Android如何通過手機(jī)自動(dòng)獲取短信驗(yàn)證碼
- android教程之intent的action屬性使用示例(intent發(fā)短信)
相關(guān)文章
Android實(shí)現(xiàn)布局動(dòng)畫和共享動(dòng)畫的結(jié)合效果
今天給大家?guī)砟軌蛱嵘脩趔w驗(yàn)感的交互動(dòng)畫,使用起來非常簡(jiǎn)單,體驗(yàn)效果非常贊,其中僅使用到布局動(dòng)畫和共享動(dòng)畫,文章通過代碼示例介紹的非常詳細(xì),感興趣的同學(xué)可以自己動(dòng)手試一試2023-09-09
Android Activity中onStart()和onResume()的區(qū)別分析
這篇文章主要介紹了Android Activity中onStart()和onResume()的區(qū)別,結(jié)合Activity的四種狀態(tài)簡(jiǎn)單分析了Android Activity中onStart()和onResume()方法的作用,并補(bǔ)充說明了Activity中六個(gè)常用函數(shù),需要的朋友可以參考下2016-01-01
Flutter實(shí)現(xiàn)下拉刷新和上拉加載更多
這篇文章主要為大家詳細(xì)介紹了Flutter實(shí)現(xiàn)下拉刷新和上拉加載更多,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-08-08
Android 高德地圖之poi搜索功能的實(shí)現(xiàn)代碼
這篇文章主要介紹了android 高德地圖之poi搜索功能的實(shí)現(xiàn)代碼,在實(shí)現(xiàn)此功能時(shí)遇到很多問題,在文章都給大家提到,需要的朋友可以參考下2017-08-08
Android kotlin語言實(shí)現(xiàn)刪除文件的解決方案
這篇文章主要介紹了Android kotlin語言實(shí)現(xiàn)刪除文件的解決方案,在項(xiàng)目開發(fā)過程中,尤其是需要跨平臺(tái)協(xié)作的項(xiàng)目,那么刪除用戶指定的文件的這種操作就顯得尤為重要了,需要的朋友可以參考下2025-02-02
Android 使用Vitamio打造自己的萬能播放器(8)——細(xì)節(jié)優(yōu)化
本文主要介紹Android Vitamio開發(fā)播放器,這里給大家提供了一些小的細(xì)節(jié)優(yōu)化,更加完善播放器的功能,希望能幫助有需要的小伙伴2016-07-07
Android開發(fā)之無痕過渡下拉刷新控件的實(shí)現(xiàn)思路詳解
下拉刷新效果功能在程序開發(fā)中經(jīng)常會(huì)見到,今天小編抽時(shí)間給大家分享Android開發(fā)之無痕過渡下拉刷新控件的實(shí)現(xiàn)思路詳解,需要的朋友參考下吧2016-11-11

