【发布时间】:2016-12-28 02:01:45
【问题描述】:
我有一种情况。 我有一个 Eclipse 工作,代码如下:
private class ExecutionJob extends Job {
public static final String MY_FAMILY = "myJobFamily";
public ExecutionJob(String name) {
super(name);
}
@Override
protected IStatus run(IProgressMonitor monitor) {
monitor.beginTask("executing ...... ", IProgressMonitor.UNKNOWN);
methodForExecution();
monitor.done();
return Status.OK_STATUS;
}
@Override
public boolean belongsTo(Object family) {
return family == MY_FAMILY;
}
}
这个methodForExecution()的代码如下:
public void methodForExecution(){
PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage().showView("view_id");
}
现在的情况是,作业打开了类似progressmonitor 的东西,而我的方法是尝试访问实际上位于该作业progressmonitor 后面的UI。由于进度监视器没有 ActiveWorkbenchWindow,它会给出 NullPointerException。
我不能使用 UIJob,因为我必须异步执行这个 methodForExecution()。 有人可以帮我解决这个问题吗?
【问题讨论】:
标签: eclipse eclipse-plugin eclipse-rcp jobs