能写八个小时程序,没感觉厌烦,没有玩游戏浪费时间
学到的东西: File的参数 contentresolver与contentprovider? resolver
List<Obj>实例化时用Arraylist<Obj>
构造有参数和无参数的构造方法
new Thread(){}.start();
重写run方法
new Thread(){
@Override
public void run() {
super.run();
}
}.start();
for迭代参数
List<SmsInfo> smsInfos=service.getSmsInfos(); for(尖括号参数类型 参数:集合名){}
for(SmsInfo s:smsInfos){
}
List<SmsInfo> smsInfos=service.getSmsInfos(); for(尖括号参数类型 参数:集合名){}
for(SmsInfo s:smsInfos){
}
File api参数
File file = new File (String path);
File file=new File();
File file=new File("sdcard/smsbackup.xml");
子线程显示Toast标准写法
Looper.prepare();
Toast.makeText(getApplicationContext(), "备份完成", 0).show();
Looper.loop();
耗时操作 放在service中 开启一个子线程 重写run方法
File file = new File (String path);
File file=new File();
File file=new File("sdcard/smsbackup.xml");
子线程显示Toast标准写法
Looper.prepare();
Toast.makeText(getApplicationContext(), "备份完成", 0).show();
Looper.loop();
耗时操作 放在service中 开启一个子线程 重写run方法
(new File,new 序列化器,输出流,xmlSerializer set流和编码"UTF-8",设置xml头尾 ,for迭代头 内容 尾,刷新和关闭流,Toast)
备份的还原:
读取xml文件 解析xml数据 将数据插入到短信中
流 解析 插入(一条短信结束节点,ContentReslover insert) 不可消除的对话框(防止终止还原)
读取xml文件 解析xml数据 将数据插入到短信中
流 解析 插入(一条短信结束节点,ContentReslover insert) 不可消除的对话框(防止终止还原)
解析注意点:
int
event = parser.getEventType();
ContentValues values=
null
;其实是一个List<Obj>集合
while
(event!=XmlPullParser.
END_DOCUMENT
){}
XmlPullParser
switch
case id :
values =
new
ContentValues();
getName()
"smss"
.equals(parser.getName())
values.put(
"address"
, parser.nextText());
例子:switch
(event) {
case
XmlPullParser.
START_TAG
:
if
(
"smss"
.equals(parser.getName())){
values =
new
ContentValues();
}
if
(
"address"
.equals(parser.getName())){
values.put(
"address"
, parser.nextText());
}
解析完一条短信,插入短信应用
ContentResolver
insert
Uri. parse(
"content://sms/"
)
values=
null
;
if
(
"smss"
.equals(parser.getName())){
ContentResolver resolver =
context
.getContentResolver();
resolver.insert(Uri. parse(
"content://sms/"
), values);
values=
null
;
}