【问题标题】:While clearing cache the data stored in local database gets erased. How to avoid this issue in Flutter-SQLite-Dart application?清除缓存时,存储在本地数据库中的数据会被删除。如何在 Flutter-SQLite-Dart 应用程序中避免这个问题?
【发布时间】:2021-12-30 20:34:18
【问题描述】:

我正在使用 Flutter-SQLite-Dart 开发一个移动应用程序,它具有与测验应用程序一样的基本功能。我将问题和答案存储到我的本地数据库中,当缓存被清除时,存储的数据就会被删除。我需要保存这些数据而不会丢失。使用什么方法来解决这个问题?

【问题讨论】:

    标签: android flutter sqlite dart sqflite


    【解决方案1】:

    对于 Android,您在应用信息中有两个选项 - 清除数据(清除存储)和清除缓存。

    默认情况下,SQLite DB 保存在内部app 数据目录,所以当你清除缓存(app 缓存目录)时,你所有的DB 数据都是活的。但是,如果您清除数据(清除存储),则会删除您的数据库 + 缓存 + 其他数据。

    如果您想在清除数据(清除存储)或卸载应用程序后保留 DB,您有一些选择:

    自动备份应用程序会自动备份用户数据,这些应用程序以 Android 6.0(API 级别 23)或更高版本为目标并在其上运行。 Android 通过将应用数据上传到用户的 Google 云端硬盘来保存应用数据,该数据受到用户的 Google 帐户凭据的保护。您的应用程序的每位用户的数据量限制为 25MB。存储备份数据是免费的。您的应用可以自定义备份过程

    • 您可以尝试更改数据库保存目录。例如,将其保存到 Documents 左右。
    • 使用firebase_database

    所有这些选项都有优点和缺点......

    请注意,当用户尝试清除应用数据时,Android 会显示一个警告对话框,其中包含以下信息:

    此应用的所有数据都将被永久删除。这包括所有文件、设置、帐户、数据库等。

    【讨论】:

    • 非常感谢您的回答。将尝试这些建议的选项
    • @TerinTittu 很高兴为您提供帮助)
    猜你喜欢
    • 2020-08-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-04
    • 1970-01-01
    • 2015-03-11
    • 2021-12-31
    • 1970-01-01
    相关资源
    最近更新 更多