我想在一個單獨的線程上完成一個工作/任務隊列,但一次只能處理一個工作。所以不是同時的。Android線程隊列
是否有內置的android爲此?
感謝,
編輯: 工作=從數據庫中獲得的信息。完成後,使用獲取的信息更新UI。
我想在一個單獨的線程上完成一個工作/任務隊列,但一次只能處理一個工作。所以不是同時的。Android線程隊列
是否有內置的android爲此?
感謝,
編輯: 工作=從數據庫中獲得的信息。完成後,使用獲取的信息更新UI。
你檢出了java.util.concurrent.Executors嗎?你可以這樣做:
final static ExecutorService tpe = Executors.newSingleThreadExecutor();
...
tpe.submit(new Runnable() {
@Override
public void run() {
// your work
}
}):
它不是特定於android的,它是jdk5的一部分。
從DOC:
創建一個使用單個worker線程的 無界隊列操作執行器。 (但是請注意,如果單個線程關閉前的執行期間終止 由於故障,一個新的人會 如果需要執行後續任務,取代它的位置。)的任務是 保證順序地執行,並且不超過一個任務在任何給定時間將爲 有效。與其他等效的 newFixedThreadPool(1)不同,保證返回的執行程序不會被 重新配置爲使用其他線程。
如果您希望能夠獨立於可以排隊工作的活動生命週期工作,請參閱IntentService。它可以旋轉起來,異步地完成不連續的工作塊,然後在所有任務完成時自行完成。
如果你不需要任何東西,生活中可以沒有任何活動,Java有幾個不同的實現沿ExecutorService。
在Android中您還可以考慮Loader框架。
通常情況下,閱讀DB上的「單獨的線程」完成,但更新UI必須在主線程來完成。所以這些任務不會在同一個線程上按順序進行。 – Tom