短信还原的注意点

前端之家收集整理的这篇文章主要介绍了短信还原的注意点前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

状况:

“短信还原”模块无法“正常”还原

逻辑

⑴短信备份模块:创建内容提供者,访问存储短信的数据库表,将sms表下的address,body,_id,date,type字段用smsInfo对象

去接收,创建List集合去接收所有的smsInfo对象,即获得所有的短信

⑵创建XmlSerializer和FileOutputStream输入流,将集合中的所有短信写入xml文件,如下图xml文件(_id为数据库的自增长字段)

⑶短信还原模块:如上文件已经在手机上存储以后,读取xml文件,并且将短信息已List集合接收,倒转List集合中元素的顺序,在for

循环中依次插入,如下代码



分析:

因为在短信备份的过程中,写入的xml文件是从头部插入,所以在数据库中原本_id的顺序为1,2,3的短信,xml文件变成了3,1,于是

将List集合中的元素顺序反转(如不反转,把短信全部删除再还原,则会发生还原了后面一半的短信,前面的无法还原),在短信完全

删除的情况下,可成功还原全部短信,但是在删除了id为1和3的短信,保留id为2的短信再点击还原,发现只还原了id为3的短信,导

数据库


id为1的短信插入数据库以后,自增长id变为了3,所以导致id为3的短信无法插入


最终解决方案:未完

猜你在找的XML相关文章