Android、Java:ExecutorService 关闭后执行

Jim*_*Jim 6 java android

我有一个ExecutorService

private final ExecutorService listenDataExecutorService = 
                              Executors.newSingleThreadExecutor();
Run Code Online (Sandbox Code Playgroud)

在同样的情况下,我需要执行人停止做他的工作。为此我打电话listenDataExecutorService.shutdown();

然后过了一段时间,我需要这个执行者再次做这项工作。但是当我调用时listenDataExecutorService.execute()抛出异常。

之后如何为执行者执行新任务shutdown

aio*_*obe 6

一旦执行程序服务被关闭,它就无法重新激活。创建一个新的执行器服务来重新启动执行:

listenDataExecutorService = Executors.newSingleThreadExecutor();
Run Code Online (Sandbox Code Playgroud)

final(不过你必须删除修饰符。)

另一种选择是取消所有挂起的任务,然后在您想要恢复执行时重新安排它们。