tommwq的博客

一种归档和恢复数据的方法

· [tommwq@126.com]

每个SQLite数据库最多可能存在3个数据文件,分别是数据文件(后缀.db)、预写日志文件(后缀.db-wal)和共享内存文件(后缀.db-shm)。通过复制和保留这三个文件,可以实现数据归档和恢复。具体做法如下:

  1. 将数据保存到SQLite数据库(建议使用Room框架)。
  2. 备份。通过 context.getDatabasePath(databaseFilename).absolutePath 获得数据文件(.db)路径,通过添加后缀“-wal”和“-shm”的方式,获取全部3个文件(也可能只有1个或2个)。将这些文件复制到私有存储或共享存储中,在副本的文件名中添加归档标签。
  3. 恢复。关闭SQLite数据库。将存储中的归档文件复制并覆盖SQLite数据库文件,重启应用。重启应用的方法可以参考[崩溃] Android应用自动重启

修改记录

  1. 2023年09月18日 新建文件。
  2. 2024年02月10日 调整部分文字;增加关于重启应用方法的参考资料。