簡體   English   中英

Android,Java:ExecutorService在關機后執行

[英]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();

您必須以正確的順序調用三個方法來關閉ExecutorServiceshutdown, awaitTermination, shutdownNow

看看下面的帖子:

如何正確關閉java ExecutorService

然后過了一段時間,我需要這個執行者再次完成這項工作。 但是當我調用listenDataExecutorService.execute()拋出異常。

如何在關機后執行執行程序的新任務?

在對該ExecutorService調用execute之前,該服務不應處於shutdown狀態。 確保ExecutorService處於正確狀態以接受任務=>您的應用程序代碼應正確處理ExecutorService關閉 ”和“ 重新創建 ”。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM