因为我一直在使用Flutter开发应用程序。我发现应用程序的体积很大,而且它占用大量空间作为应用程序数据和应用程序缓存。有什么方法可以通过程序清除应用程序缓存吗?
编辑:在发布模式下,我的应用程序大小约为7mb,应用程序数据约为11mb。 我的应用在应用内打开了一个站点,并且还流播了在线广播,因此其应用数据不断增加
答案 0 :(得分:1)
您可以获取temp文件夹,然后删除其中的文件。
var appDir = (await getTemporaryDirectory()).path;
new Directory(appDir).delete(recursive: true);
答案 1 :(得分:1)
注意文森特的答案。
尝试避免清除设备的临时文件夹。清除应用程序的缓存文件夹将很省钱,例如:
var appDir = (await getTemporaryDirectory()).path + '/<package_name>';
new Directory(appDir).delete(recursive: true);
答案 2 :(得分:1)
您还可以使用flutter_cache_manager来以编程方式删除或删除应用程序的缓存。
在安装flutter_cache_manager之后,使用它:
await DefaultCacheManager().emptyCache();
答案 3 :(得分:0)
您可以轻松删除缓存。
import 'package:path_provider/path_provider.dart';
Future<void> _deleteCacheDir() async {
final cacheDir = await getTemporaryDirectory();
if (cacheDir.existsSync()) {
cacheDir.deleteSync(recursive: true);}}
final appDir = await getApplicationSupportDirectory();
if (appDir.existsSync()) {
appDir.deleteSync(recursive: true);}}
答案 4 :(得分:0)
您只需在此之后刷新您的应用即可。
import 'dart:io';
import 'package:provider/provider.dart';
Future<void> _deleteCacheDir() async {
var tempDir = await getTemporaryDirectory();
if (tempDir.existsSync()) {
tempDir.deleteSync(recursive: true);
}
}
Future<void> _deleteAppDir() async {
var appDocDir = await getApplicationDocumentsDirectory();
if (appDocDir.existsSync()) {
appDocDir.deleteSync(recursive: true);
}
}