【问题标题】:How to clear whole data of application in flutter如何在flutter中清除应用程序的全部数据
【发布时间】:2020-02-19 12:58:34
【问题描述】:

我想在按钮点击时清除我的应用数据。现在我有一个应用程序,当我按下按钮时我想清除数据,它需要清除应用程序的整个数据和缓存。所以当我进入应用程序时,调试是 40mb 的应用程序和发布应用程序大约11mb,我的应用程序有视频播放器,我每次都需要清除缓存。因为有一段时间视频播放器会继续在后台播放。

希望您理解这个问题。谢谢:)

我得到一些建议这是一些代码。我不知道它的工作原理。

var appDir = (await getTemporaryDirectory()).path;
new Directory(appDir).delete(recursive: true);

【问题讨论】:

标签: flutter dart memcached


【解决方案1】:

您提供的以下行正在尝试清除设备的临时文件夹。

var appDir = (await getTemporaryDirectory()).path;
new Directory(appDir).delete(recursive: true);

但有时避免清除临时文件夹会更好,而是清除应用程序的缓存文件夹。就像这样:

var appDir = (await getTemporaryDirectory()).path + '/<package_name>';
new Directory(appDir).delete(recursive: true);

其中package_name 指的是应用的Bundle ID

您还可以使用一些包,如 cmets 部分中提到的 path_provider 包。它允许我们访问设备文件系统上的常用位置。你可以这样做:

Future<void> _deleteCacheDir() async {
    final cacheDir = await getTemporaryDirectory();

    if (cacheDir.existsSync()) {
      cacheDir.deleteSync(recursive: true);
    }
  }

  Future<void> _deleteAppDir() async {
    final appDir = await getApplicationSupportDirectory();

    if(appDir.existsSync()){
      appDir.deleteSync(recursive: true);
    }
  }

这是 path_provider 的good reference

【讨论】:

    猜你喜欢
    • 2021-05-31
    • 1970-01-01
    • 2022-11-23
    • 2023-01-15
    • 2011-04-21
    • 1970-01-01
    • 2011-06-18
    • 2019-12-27
    • 1970-01-01
    相关资源
    最近更新 更多