我正在使用IBM WorkManager (v8.0.0)来做一些与主线程异步的工作。
为此,我使用以下代码:
// wm = via resource injected WorkManager
WorkItem item = wm.startWork(work, WorkManager.INDEFINITE, new WorkListener() {
@Override
public void workStarted(WorkEvent arg0) {
}
@Override
public void workRejected(WorkEvent arg0) {
}
@Override
public void workCompleted(WorkEvent arg0) {
WorkException exception = arg0.getException();
if (null != exception) {
throw new RuntimeException("WorkCompleted with Exception");
}
}
@Override
public void workAccepted(WorkEvent arg0) {
}
});
WorkEvent
只要毫无例外地完成,这工作就很好。但是当它以异常完成时,我想通知主线程停止向WorkManager
.
我以为我可以提出一个RunetimeException
通知主线程,但是分析日志我发现在主线程完成所有提交并调用 - 的 - 方法的那一刻引发了异常,WorkItems
这WorkManager
为时join
已WorkManager
晚(在大多数情况下50.000 项必须由WorkManager
) 完成。
WorkManager
那么,当在 中识别出异常时,如何中断我的主线程以阻止它向 提交更多项目workCompleted
?