我使用 org.eclipse.core.runtime.jobs.Job 执行删除数据的存储过程并根据新数据更新用户界面。因此,即使用户关闭 Eclipse 应用程序,这项工作也将完成,这一点很重要。
final Job execStoredProcJob = new Job(taskName) {
protected IStatus run(IProgressMonitor monitor) {
monitor.beginTask(taskName,
// execute stored procedure
// update user interface
monitor.done();
return Status.OK_STATUS;
}
};
execStoredProcJob.schedule();
Run Code Online (Sandbox Code Playgroud)
当我在作业仍在运行时关闭 eclipse 应用程序时,它似乎会终止作业。用户关闭 eclipse 应用程序后如何完成工作?是否可以?
我想你可能想看看调度规则 http://www.eclipse.org/articles/Article-Concurrency/jobs-api.html
execStoredProcJob.setRule([Workspace root]);
execStoredProcJob.schedule();
Run Code Online (Sandbox Code Playgroud)
project.getWorkspace().getRoot()如果您有对项目的引用,则可以获取[工作空间根目录] 。
这将阻止所有需要相同规则的作业。关闭工作就是其中之一。
还可以:
IWorkspace myWorkspace = org.eclipse.core.resources.ResourcesPlugin.getWorkspace();
Run Code Online (Sandbox Code Playgroud)
然后使用:
myWorkspace.getRoot();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2649 次 |
| 最近记录: |