Flutter 代码优化:简化通知展示逻辑
void shownotice() async {
var dio = Dio();
final response = await dio.get(
'https://update-nepucouseupdate-bmgwsddxxl.cn-hongkong.fcapp.run/notice');
String version = response.data[0]['version'];
String notice = response.data[0]['notice'];
final dir = await getApplicationDocumentsDirectory();
File file = File('${dir.path}/notice.txt');
if (await file.exists()) {
String content = await file.readAsString();
if (version.toString() != content.toString()) {
AchievementView(context,
title: '新通知!',
subTitle: notice.toString(),
color: Global.home_currentcolor,
duration: Duration(seconds: 10),
isCircle: true, listener: (status) {
if (status.toString() == 'AchievementState.closed') {
file.writeAsString(version.toString());
}
})..show();
}
} else {
await file.create();
await file.writeAsString(version.toString());
AchievementView(context,
title: '新通知!',
subTitle: notice.toString(),
color: Global.home_currentcolor,
duration: Duration(seconds: 10),
isCircle: true, listener: (status) {
if (status.toString() == 'AchievementState.closed') {
file.writeAsString(version.toString());
}
})..show();
}
}
优化点:
-
使用
async/await简化异步操作: 原代码中使用.then()链式调用处理异步操作,显得比较繁琐。使用async/await可以更清晰地表达异步逻辑,并使代码更易读。 -
合并重复代码: 原代码中,文件存在和不存在的情况下,大部分代码都是重复的。优化后将重复代码提取到一个函数中,提高代码复用性。
-
使用
String.toString()简化代码: 原代码中多次使用toString()方法将字符串类型转换为字符串类型,显得冗余。优化后直接使用字符串变量即可。
优化后的代码更加简洁易读,也提高了代码的效率。
原文地址: http://www.cveoy.top/t/topic/ojHB 著作权归作者所有。请勿转载和采集!