用途:防止界面冻结、保证响应性,方法是校验线程规则并处理阻塞调用。
主要能力:
- 审计 runInEdt、invokeLater、invokeAndWait 的使用。
- 识别这些 UI 代码块中的 I/O 操作(文件、网络)或重计算。
- 使用 Task.Backgroundable 或 ReadAction.nonBlocking 将重任务迁移到后台线程。
- 检查模态对话框是否不必要地阻塞 UI 线程。
必要用法: 先运行 ./gradlew test 与 ./gradlew verifyPlugin 确认基线;改动后运行 ./gradlew testClasses 验证重构安全性,再运行 ./gradlew test 与 ./gradlew verifyPlugin 确认无回归;在沙箱运行 ./gradlew runIde 并操作关键功能观察冻结。任务要求提供手动测试步骤,并明确指出在 IDE 何处测试(如 Preferences > Languages & Frameworks > Flutter),必要时加日志确认代码路径执行。最后汇总线程修复,请用户仔细检查是否引入死锁或冻结。
限制:不提交、不推送;仅建议 Git 提交信息(如“Fix UI freeze: Move heavy computation to background task”)。其余信息暂未提供。