我希望能够将 submit 已被调用的Callables获取到当前正在进行的ExecutorService(特别是ThreadPoolExecutor)中(因此无法通过getQueue()获得它们)。

我尝试创建一个子类来覆盖beforeExecute,但是给出的Runnable却是FutureTask,而不是提交的原始Callable。

确定 Activity 的可调用对象还有另一种方法吗?

最终,我想对这些信息做两件事:

  • 获取正在运行的任务,以便可以在用户界面
  • 中显示它们
  • 检查Callable引用的文件是否与某个模式匹配,如果匹配,则将其取消
  • 最佳答案

    您可以覆盖AbstractExecutorService.newTaskFor(),它应该使您可以访问原始RunnableCallable。然后用您的跟踪装饰器装饰它们,并传递给super.newTaskFor()

    关于java - 确定ExecutorService中当前正在运行哪些可调用对象,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/12414767/

    10-12 02:01