首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >在RCP应用程序中实现postWindowClose()

在RCP应用程序中实现postWindowClose()
EN

Stack Overflow用户
提问于 2014-02-26 08:37:56
回答 1查看 865关注 0票数 0

嗨,RCP开发者,

我想在我的postWindowClose() ECLIPSE应用程序中使用

在编写此方法之前,我只做了一个小测试,看看当我关闭应用程序时,是否调用了该方法,所以我这样做了:

代码语言:javascript
运行
复制
import org.eclipse.ui.application.IWorkbenchWindowConfigurer;
import org.eclipse.ui.application.WorkbenchWindowAdvisor;


public class MainWindowControl extends WorkbenchWindowAdvisor{

    public MainWindowControl(IWorkbenchWindowConfigurer configurer) {
        super(configurer);
        // TODO Auto-generated constructor stub
    }

    @Override
    public void postWindowClose() {
        // TODO Auto-generated method stub
        super.postWindowClose();
        System.out.println("close");
    }

}

我希望看到:close在ECLIPSE控制台中,但是在关闭应用程序之后它仍然是空白的。

所有所需的插件都是添加的,我在启动或关闭应用程序时没有错误。

我是不是漏掉了什么?

执行此方法的原因是:

  1. 味精盒:Are you sure you want to close the application
  2. 杀死所有正在运行的线程,我的应用程序上传文件,甚至当我关闭应用程序运行上传继续。我想在关闭应用程序时中止它们。

编辑:

我的生命周期课:

代码语言:javascript
运行
复制
package upload.center.util;

import org.eclipse.e4.ui.workbench.lifecycle.PostContextCreate;
import org.eclipse.e4.ui.workbench.lifecycle.PreSave;

public class WindowLifeCycle {

 @PostContextCreate
 public void postContextCreate()
  {
    // TODO start up code here
     System.out.println("open");
  }

@PreSave
  public void preSave()
  {
     // TODO add shutdown code here
    System.out.println("close");
  }
}

我的plugin.xml:

代码语言:javascript
运行
复制
<product ....
<property
           name="windowLifeCycle"
           value="bundleclass://UploadCenter.Source/upload.center.util.WindowLifeCycle">
     </property>
 ...</product>

我希望我说得够清楚。

伊斯梅尔

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-02-26 10:04:25

对于纯Eclipse4 (e4)应用程序,不使用工作台窗口顾问(和其他顾问)。您可以使用生命周期类的@PreSave方法在关机期间运行代码。

代码语言:javascript
运行
复制
public class LifeCycle
{
  @PostContextCreate
  public void postContextCreate()
  {
    // TODO start up code here
  }

  @PreSave
  public void preSave()
  {
     // TODO add shutdown code here
  }
}

plugin.xml中的产品定义中声明生命周期类

代码语言:javascript
运行
复制
<extension
     id="product"
     point="org.eclipse.core.runtime.products">
  <product
        name="%product.name"
        application="org.eclipse.e4.ui.workbench.swt.E4Application">
      <property
           name="lifeCycleURI"
           value="bundleclass://plugin-id/package.LifeCycle">
     </property>
     .... more properties ...

有关详细信息,请参阅这里

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22035861

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档