2010-10-30 22 views
2

我試圖找到一些簡單的方法排隊不是UI線程的線程上的任務。如何在Android中的工作線程上排列任務?

我有一個BroadcastReceiver,每次拍攝圖像時都會響應Intents,並在每次發生時通知我的Service。該服務將不得不做一些處理(縮放和旋轉圖像),我想在一個新的線程上執行此操作(該服務與我的主要活動在同一線程上運行)。所以我一直在尋找AsyncTask。

我的問題是,如果在完成前一個完整處理之前拍攝下一個圖像,我將有兩個AsyncTasks同時運行,而我不希望這樣。我想排隊處理下一個,直到第一個完成。

所以基本上我想要兩個線程。一個是標準的UI線程,另一個是我的工作線程,我可以有一個任務隊列執行。

什麼是最好的辦法?

回答

4

我有一個BroadcastReceiver,每次拍攝圖像時都會響應Intents,並在每次發生這種情況時通知我的Service。該服務將不得不做一些處理(縮放和旋轉圖像),我想在一個新的線程上執行此操作(該服務與我的主要活動在同一線程上運行)。所以我一直在尋找AsyncTask。

IntentService是這類問題精解,因爲它結合了工作隊列在一個Service後臺線程。您只需覆蓋onHandleIntent()即可完成您的實際工作。

我的問題是,如果在完成前一個完整處理之前拍攝下一個圖像,我將有兩個AsyncTasks同時運行,而我不希望這樣。我想排隊處理下一個,直到第一個完成。

IntentService一次只能處理一個Intent

+0

感謝您的快速回復,明天將試用! – Joel 2010-10-30 14:41:07

相關問題