我正在使用IResourceChangeListener来监听工作区/项目的更改。它是按照Eclipse示例的建议实现的:
IWorkspace workspace = ResourcesPlugin.getWorkspace();
IResourceChangeListener resourceChangeListener = new IResourceChangeListener() {
public void resourceChanged(IResourceChangeEvent event) {
System.out.println("Something changed!");
}
};
workspace.addResourceChangeListener(resourceChangeListener, IResourceChangeEvent.POST_BUILD);
// some time later on ...
workspace.removeResourceChangeListener(resourceChangeListener);
我在一个相对较新的插件项目中实现了这个代码,但只要在工作区中进行了更改“Something changed!”被扔了两次?
如果有帮助:该类实现org.eclipse.ui.IStartup
。 IResourceChangeListener
和resourceChanged()
已创建,位于earlyStartup()
内。