我的應用程序使用HandlerThread
作爲在需要在後臺線程上運行的組件間共享的一些操作。大多數時候這個線程將處於等待狀態。必須退出HandlerThread?
我可以在我的應用程序中運行(等待)這個HandlerThread
,在必要時發送消息給它,但是不會通過HandlerThread.getLooper().quit()
退出嗎?這可能意味着這個HandlerThread
即使在我的所有應用程序組件都被銷燬之後仍然處於等待狀態。
最初,這對我來說似乎是一個很大的問題 - 我絕對不想這麼做 - 但我現在還不確定。當Android殺死我的進程時,就像它需要釋放CPU時間或內存時會執行的一樣,它會結束此線程以及我的UI線程。此外,線程將等待,所以它不會消耗任何CPU時間。除此之外,我的應用程序使用了許多AsyncTasks
,我知道它使用線程池。根據我的理解,AsyncTask
利用了ThreadPoolExecutor
,它不遵守任何應用程序生命週期回調(池中的線程在不使用時,只是在等待)。
所以我的問題是,我可以在多個應用程序組件中使用HandlerThread
,從不(或很少)退出它,並在不使用時等待,而不會遭受可怕的不良影響?
我不同意你的意見,因爲如果你必須在另一個線程做一件事是很多次完成,將創造大量的線程,這可能會導致應用程序崩潰。 –