次のようなユーザージョブがあります。
Job job = new Job("bla1") {
@Override
protected IStatus run(IProgressMonitor monitor) {
monitor.beginTask("Dummy 2", 100);
for (int i = 0; i < 100; i++) {
if (monitor.isCanceled()) {
return Status.CANCEL_STATUS;
}
System.out.println(i);
try {
Thread.sleep(100);
} catch (InterruptedException e) {
e.printStackTrace();
}
monitor.worked(1);
}
monitor.done();
return Status.OK_STATUS;
}
};
job.setUser(true);
job.schedule();
このジョブが開始されると、ジョブの進行状況を示す [バックグラウンドで実行]、[キャンセル]、[詳細] の 3 つのボタンを含む進行状況ダイアログが表示されます。これはステータスバーにも表示されます。「バックグラウンドで実行」を押すと、ダイアログは非表示になりますが、ステータスバーには進行状況が表示されます。ジョブをキャンセルしたい場合、ステータスバーから小さなボタンを押してもダイアログが再度表示されないため、これ以上キャンセルできません (進行状況ビューでバックグラウンド操作を表示します)。
誰かが私を助けてくれたらうれしいです:)。