在 App Update/Reinstall Rollout Xamarin 上保留 SQLite db 数据

Posted

技术标签:

【中文标题】在 App Update/Reinstall Rollout Xamarin 上保留 SQLite db 数据【英文标题】:Preserving SQLite db data on App Update/Reinstall Rollout Xamarin 【发布时间】:2019-06-11 23:06:30 【问题描述】:

我目前正在 android 手机上测试 Xamarin.Forms 共享项目。

到目前为止,sqlite 数据库存储在System.Environment.SpecialFolder.Personal 中。

我想确保保存在 db 中的用户输入数据:

1 在每次下一次升级时,我都计划开发一个应用程序,以及

2 在其他情况下,用户完全删除了他的应用并重新安装

(我猜这是两种完全不同的情况,但我可能错了)

我想知道通过 Google Play Store Update 更新应用程序是否也会覆盖 db 文件,因此所有数据都会丢失?还是会保留数据?

如果用户想在应用卸载/重新安装后保留他/她的数据,会有什么选择?

在第二种情况下,我正在考虑手动/自动备份正在使用的 SpecialFolder.Personal db 版本,并使用 External_STORAGE 权限将其存储为包外的单独文件。

然后用户将能够将数据从外部 db 文件副本导入到包中。

另外,导入应该是什么样子? 我可以简单地将文件替换为外部文件吗?

我们将不胜感激有关此主题的任何建议。

【问题讨论】:

【参考方案1】:
    来自 Google Play 的更新不会覆盖 db 文件 如果用户卸载应用程序,他会想要删除与应用程序相关的所有内容。所以我最好的解决方案是在你的 API 中有一个同步方法,这样当用户再次安装应用程序时,它会用请求的数据填充本地数据库。

【讨论】:

好消息。我希望数据不会受到应用更新的影响。对于第二种情况,我将在应用程序中放置一个备份/恢复按钮,如果用户进行全新安装,它将备份到外部存储并恢复文件。

以上是关于在 App Update/Reinstall Rollout Xamarin 上保留 SQLite db 数据的主要内容,如果未能解决你的问题,请参考以下文章

路由系统

Vue2.5??????????????????App ?????????????????????????????????

如何在 create-react-app 上使用“/”阻止路由

Tomcat的manager app管理web项目

11.3du

Android系统优化