我希望能够获得我拥有的 Callables submit
发送给当前正在进行的 ExecutorService(特别是 ThreadPoolExecutor)(因此它们无法通过 getQueue()
获得)。
我尝试创建一个子类来覆盖 beforeExecute
,但给出的 Runnable 结果是一个 FutureTask,而不是提交的原始 Callable。
还有其他方法可以确定 Activity 的 Callables 吗?
最终我想用这些信息做两件事:
- 获取正在运行的任务,以便在用户界面中显示它们
- 检查 Callable 引用的文件是否与模式匹配,如果是,则取消它
最佳答案
您可以覆盖 AbstractExecutorService.newTaskFor()
,它应该允许您访问原始的 Runnable
和 Callable
。然后用您的跟踪装饰器装饰它们并传递给 super.newTaskFor()
。
关于java - 确定哪些 Callables 当前正在 ExecutorService 中运行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12414767/