[英]Android, Java: ExecutorService execute after shutdown
我有一个ExecutorService
:
private final ExecutorService listenDataExecutorService =
Executors.newSingleThreadExecutor();
在同样的情况下,我需要执行人员停止工作。 为此,我调用listenDataExecutorService.shutdown();
然后过了一段时间,我需要这个执行者再次完成这项工作。 但是当我调用listenDataExecutorService.execute()
抛出异常。
如何在shutdown
后执行执行程序的新任务?
一旦执行程序服务关闭,它就无法重新激活。 创建新的执行程序服务以重新启动执行:
listenDataExecutorService = Executors.newSingleThreadExecutor();
(你必须删除final
修饰符。)
另一种选择是取消所有挂起的任务,然后在您想要恢复执行时重新安排它们。
首先,您必须删除final
访问级别修饰符,以便在后期重新创建ExecutorService
。 final
修饰符不允许您稍后在重新初始化期间更改ExecutorService
的引用。
在同样的情况下,我需要执行人员停止工作。 为此,我调用
listenDataExecutorService.shutdown();
您必须以正确的顺序调用三个方法来关闭ExecutorService
: shutdown, awaitTermination, shutdownNow
看看下面的帖子:
然后过了一段时间,我需要这个执行者再次完成这项工作。 但是当我调用
listenDataExecutorService.execute()
抛出异常。如何在关机后执行执行程序的新任务?
在对该ExecutorService
调用execute
之前,该服务不应处于shutdown
状态。 确保ExecutorService
处于正确状态以接受任务=>您的应用程序代码应正确处理ExecutorService
“ 关闭 ”和“ 重新创建 ”。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.