android - 在 App Update/Reinstall Rollout Xamarin 上保留 SQLite db 数据
问题描述
我目前正在 Android 手机上测试 Xamarin.Forms 共享项目。
sqlite db 目前已存储在System.Environment.SpecialFolder.Personal
其中。
我想确保保存存储在 db 中的用户输入数据:
1 每次下一次升级时,我都在计划一个应用程序,以及
2 在用户完全删除他的应用程序并重新安装的其他情况下
(我想这是两种完全不同的情况,但我可能错了)
我想知道通过 Google Play Store Update 更新应用程序是否也会覆盖 db 文件,因此所有数据都会丢失?还是会保留数据?
如果用户想在应用程序卸载/重新安装后保留他/她的数据,会有什么选择?
在第二种情况下,我正在考虑手动/自动备份使用中的 SpecialFolder.Personal 数据库版本,并使用 External_STORAGE 权限将其存储为包外的单独文件。
然后,用户将能够将外部数据库文件副本中的数据导入到包中的文件中。
另外,导入应该是什么样子?我可以简单地用外部文件替换文件吗?
任何有关此主题的建议将不胜感激。
解决方案
- 来自 Google Play 的更新不会覆盖 db 文件
- 如果用户卸载应用程序,他会想要删除与应用程序相关的所有内容。所以我最好的解决方案是在你的 API 中有一个同步方法,这样当用户再次安装应用程序时,它将用请求的数据填充本地数据库。
推荐阅读
- javascript - Twilio 可编程视频变焦相机
- nginx - 将根证书、服务器证书和中间证书转换为 .cert 和 .key 文件
- python - Selenium Chrome 驱动程序无法加载网站
- gitlab - 如何在本地运行 gitlab-runner
- c# - OpenNETCF dll 文件中没有 Windows CE
- c# - EFCore:尝试 TPH 时出现 SqliteException(错误 19)
- java - SQL 语法错误导致的 SQLException
- c++ - 如何使用 LoadImage() 而不是 LoadCursor 注册带有默认光标的窗口?
- python - 仅当特定数字位于该位置时才更改嵌套列表中的值
- laravel - 如何在 Laravel Spatie 中正确使用超级管理员的角色