RCP 애플리케이션에서 postWindowClose() 구현
문제
안녕 RCP 개발자,
구현하고 싶어요 postWindowClose()
내 이클립스 RCP 애플리케이션.
이 방법을 코딩하기 전에, 나는 닫다 내 응용 프로그램에서 메서드가 호출되었으므로 다음과 같이 했습니다.
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
~에 식 콘솔에 있지만 애플리케이션을 닫은 후에도 여전히 비어 있습니다.
필요한 모든 플러그인이 추가되었으며 애플리케이션을 시작하거나 닫는 동안 오류가 발생하지 않습니다.
그럼 제가 뭔가를 놓치고 있는 걸까요?
이 방법을 구현하는 이유는 다음과 같습니다.
- 메시지 상자:
Are you sure you want to close the application
- 실행 중인 스레드를 모두 종료하고 애플리케이션 업로드 파일을 종료하며 애플리케이션을 닫아도 업로드가 계속 실행됩니다.응용 프로그램을 닫을 때 중단하고 싶습니다.
편집하다 :
나의 생애주기 수업 :
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");
}
}
내 플러그인.xml :
<product ....
<property
name="windowLifeCycle"
value="bundleclass://UploadCenter.Source/upload.center.util.WindowLifeCycle">
</property>
...</product>
나는 충분히 명확하기를 바랍니다.
이스마일
해결책
순수 Eclipse 4(e4) 애플리케이션의 경우 워크벤치 창 권고자(및 기타 권고자)가 사용되지 않습니다.당신은 @PreSave
종료 중에 코드를 실행하는 라이프 사이클 클래스의 메소드입니다.
public class LifeCycle
{
@PostContextCreate
public void postContextCreate()
{
// TODO start up code here
}
@PreSave
public void preSave()
{
// TODO add shutdown code here
}
}
제품 정의에서 라이프 사이클 클래스를 선언합니다. plugin.xml
:
<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 ...
자세한 내용은 다음을 참조하세요. 여기
제휴하지 않습니다 StackOverflow