簡體   English   中英

CountDownLatch是否可以在Android服務中使用?

[英]Does CountDownLatch work in Android Service?

抱歉,沒有太多代碼可發布。 我有以下程序結構。

MyService{

initialize CountDownLatch to 2
call InterntService1 - in the end of IntentService1 decrement the latch's counter
call IntentService2 -in the end of IntentService2 decrement the latch's counter
latch.await()
}

我面臨的問題是:只要線程服務(作為應用程序主線程的一部分)開始等待,就根本不會執行Intent服務。 它只是無限地等待在那里。 還有其他人面臨同樣的問題。 我知道我可以使用處理程序/其他某種機制。 但是我的問題是,為什么會這樣?

從developer.android.com:

警告 :服務在其宿主進程的主線程中運行-該服務不會創建自己的線程,也不會在單獨的進程中運行(除非您另行指定)。 這意味着,如果您的服務要執行任何CPU密集型工作或阻止操作(例如MP3播放或聯網),則應在服務內創建一個新線程來執行該工作。 通過使用單獨的線程,可以減少應用程序無響應(ANR)錯誤的風險,並且應用程序的主線程可以保持專用於用戶與活動的交互。

我認為您需要在服務代碼上創建並運行一個工作線程。 在以下網址http://developer.android.com/guide/components/services.html中查看“擴展服務類”部分

暫無
暫無

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

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