dart 如何在Flutter上以编程方式清除应用缓存

h43kikqp  于 2022-12-20  发布在  Flutter
关注(0)|答案(5)|浏览(161)

当我一直在使用Flutter开发应用程序时,我发现应用程序的大小很大,而且它使用了大量的空间作为应用程序数据和应用程序缓存。有什么方法可以通过编程方式清除应用程序缓存吗?
编辑:我的应用在发布模式下的大小约为7mb,应用数据约为11mb。我的应用在应用中打开一个网站,它还可以播放在线广播,所以它的应用数据还在不断增加

yks3o0rb

yks3o0rb1#

您可以获取临时文件夹,并删除其中的文件。

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

swvgeqrz2#

您还可以使用use flutter_cache_manager以编程方式删除或移除应用的缓存。
安装flutter_cache_manager后,使用以下命令:

await DefaultCacheManager().emptyCache();
z3yyvxxp

z3yyvxxp3#

它正在工作,您只需在此之后刷新应用程序。

import 'package:path_provider/path_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);
    }
  }
djmepvbi

djmepvbi4#

关于文森特回答的注解。
尽量避免清除设备的临时文件夹。清除应用程序的缓存文件夹将是一个保护程序,如:

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

eimct9ow5#

您可以轻松删除缓存。

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);}}

相关问题