【发布时间】:2021-12-30 20:34:18
【问题描述】:
我正在使用 Flutter-SQLite-Dart 开发一个移动应用程序,它具有与测验应用程序一样的基本功能。我将问题和答案存储到我的本地数据库中,当缓存被清除时,存储的数据就会被删除。我需要保存这些数据而不会丢失。使用什么方法来解决这个问题?
【问题讨论】:
标签: android flutter sqlite dart sqflite
我正在使用 Flutter-SQLite-Dart 开发一个移动应用程序,它具有与测验应用程序一样的基本功能。我将问题和答案存储到我的本地数据库中,当缓存被清除时,存储的数据就会被删除。我需要保存这些数据而不会丢失。使用什么方法来解决这个问题?
【问题讨论】:
标签: android flutter sqlite dart sqflite
对于 Android,您在应用信息中有两个选项 - 清除数据(清除存储)和清除缓存。
默认情况下,SQLite DB 保存在内部app 数据目录,所以当你清除缓存(app 缓存目录)时,你所有的DB 数据都是活的。但是,如果您清除数据(清除存储),则会删除您的数据库 + 缓存 + 其他数据。
如果您想在清除数据(清除存储)或卸载应用程序后保留 DB,您有一些选择:
自动备份应用程序会自动备份用户数据,这些应用程序以 Android 6.0(API 级别 23)或更高版本为目标并在其上运行。 Android 通过将应用数据上传到用户的 Google 云端硬盘来保存应用数据,该数据受到用户的 Google 帐户凭据的保护。您的应用程序的每位用户的数据量限制为 25MB。存储备份数据是免费的。您的应用可以自定义备份过程
所有这些选项都有优点和缺点......
请注意,当用户尝试清除应用数据时,Android 会显示一个警告对话框,其中包含以下信息:
此应用的所有数据都将被永久删除。这包括所有文件、设置、帐户、数据库等。
【讨论】: