hasPendingHelperUpdate method

  1. @override
Future<bool> hasPendingHelperUpdate()
override

检测 Windows 端是否存在待生效的 helper 更新(.old 存在且服务 running)。

命中意味着运行中的服务仍挂在旧版二进制上,需重启服务(restartService) 才能应用新版;.old 在服务重启后由 Go 侧清理,信号自洽。异常一律返回 false(按无更新处理,不打扰用户)。

Implementation

@override
Future<bool> hasPendingHelperUpdate() async {
  try {
    final io.Directory dir = await ProfileStorage().getStorageDirectory();
    final io.File oldFile = _oldFileIn(dir, WindowsConstants.helperFileName);
    // await 使 evaluatePendingUpdate 内的异常落入本地 catch(否则随 Future 逃逸)
    return await evaluatePendingUpdate(
      oldFileExists: () => oldFile.exists(),
      queryStatus: () => queryServiceStatus(),
    );
  } catch (e) {
    debugPrint('检测待生效 helper 更新失败: $e');
    return false;
  }
}