idea 插件 ApplicationManager.getApplication().invokeLater

104 阅读1分钟

在 IntelliJ IDEA 插件开发中,ApplicationManager.getApplication().invokeLater() 是一个核心方法,用于确保代码在事件分发线程(Event Dispatch Thread, EDT)中执行,避免 UI 线程阻塞或线程安全问题。以下是其关键点总结:

一、基本用法

  1. 无延迟执行
    将任务提交到 EDT 立即执行:
ApplicationManager.getApplication().invokeLater(() -> {
    // 更新 UI 或执行需在 EDT 运行的逻辑
    myLabel.setText("更新后的文本");
});
  1. 带延迟执行
    可添加 ModalityState 参数控制执行时机(如等待模态对话框关闭后执行)7:
ApplicationManager.getApplication().invokeLater(() -> {
    // 逻辑代码
}, ModalityState.stateForComponent(myDialog));