【问题标题】: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。