网站建设资讯

NEWS

网站建设资讯

flutter清除缓存,flutter 本地缓存数据

Flutter 本地缓存

Flutter本地存储可以用 shared_preferences ,其会根据不同操作系统进行相对应的存储。

目前创新互联已为上1000+的企业提供了网站建设、域名、网页空间、网站托管、服务器租用、企业网站设计、石家庄网站维护等服务,公司将坚持客户导向、应用为本的策略,正道将秉承"和谐、参与、激情"的文化,与客户和合作伙伴齐心协力一起成长,共同发展。

在pubspec.yaml添加

`shared_preferences: ^2.0.13`

```d

import 'package:shared_preferences/shared_preferences.dart';

class SpUtils {

SharedPreferences?prefs;

SpUtils._() {

init();

}

static SpUtils?_instance;

static preInit() {

_instance ??=SpUtils._();

}

static SpUtilsgetInstance() {

_instance ??=SpUtils._();

return _instance!;

}

void init()async {

prefs ??=await SharedPreferences.getInstance();

}

setString(String key, String value) {

prefs!.setString(key, value);

}

setDouble(String key, double value) {

prefs!.setDouble(key, value);

}

setInt(String key, int value) {

prefs!.setInt(key, value);

}

setBool(String key, bool value) {

prefs!.setBool(key, value);

}

setStringList(String key, List value) {

prefs!.setStringList(key, value);

}

clear(String key){

prefs!.remove(key);

}

clearAll(){

prefs!.clear();

}

Tget(String key) {

return prefs!.get(key)as T;

}

}

```

在项目初始页调用

`SpUtils.preInit();`

`SpUtils.getInstance().setString('userId', '12345678');`

`SpUtils.getInstance().setDouble('price', 12.88);`

`SpUtils.getInstance().setInt('count', 200);`

`SpUtils.getInstance().setBool('flag', true);`

`SpUtils.getInstance().get('userId');`

`SpUtils.getInstance().clearAll();`

`SpUtils.getInstance().clear('userId');`

4. VS Code创建flutter项目

如果和我一样,用惯了VS Code来开发项目的话,那就跟我一起来配置一下如何在VS Code里运行flutter项目。

1.在VS Code里安装扩展:

2.在VScode上打开打开终端,快捷键:Ctrl+~(Tab上一个键),在终端上输入:flutter create flutter_app02,即可创建完成!

也可以把之前的项目放到工作区

3.在终端中运行命令:flutter run

运行的时候你会发现手机提示你安装个app,点击安装完成,项目就在手机上显示了,下图是运行成功的提示。

下图是手机效果:

如果报错的话,运行下清缓存的命令:flutter clean,把文件夹.gradle删掉,然后flutter run重新跑下项目。

flutter 图片缓存

Flutter的图片缓存机制有问题(可能是我使用的版本1.12.13有问题)

网络图片会默认缓存到本地,但是不管图片是不是完整的或者损坏的,导致页面在下次进入的时候会优先从缓存里读取图片。有些图片是没有加载完成的,或者损坏的,导致图片无法显示。UI效果就是显示成白色的。

一种解决方式:加载前或者退出后清理图片缓存

ImageCache  imageCache = PaintingBinding.instance.imageCache; 

imageCache.clear();

缺点就是每次图片都想要从网络上获取,增加服务器负担

Flutter进行本地缓存

get方法获取数据,封装存储和移除方法用于操作数据缓存列表(需要优化,仅参考)


分享名称:flutter清除缓存,flutter 本地缓存数据
转载源于:http://njwzjz.com/article/dsgjgjj.html