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

优化点:

  1. 使用 async/await 简化异步操作: 原代码中使用 .then() 链式调用处理异步操作,显得比较繁琐。使用 async/await 可以更清晰地表达异步逻辑,并使代码更易读。

  2. 合并重复代码: 原代码中,文件存在和不存在的情况下,大部分代码都是重复的。优化后将重复代码提取到一个函数中,提高代码复用性。

  3. 使用 String.toString() 简化代码: 原代码中多次使用 toString() 方法将字符串类型转换为字符串类型,显得冗余。优化后直接使用字符串变量即可。

优化后的代码更加简洁易读,也提高了代码的效率。

Flutter 代码优化:简化通知展示逻辑

原文地址: http://www.cveoy.top/t/topic/ojHB 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录