[英]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.