2010-03-30 48 views
1

我想知道如何爲Android應用程序啓動和編寫線程管理器。 我的應用程序將用網絡I/O填充一個列表,我必須爲此管理線程。如何爲Android應用程序創建線程管理器?

我從來沒有這樣做過,我不知道從哪裏開始。我聽說過線程池和其他東西,但我很困惑。有人能幫助我完成任務嗎?

感謝

回答

4

AsyncTask已經有一個線程池 - 只是使用它。

+0

線程可停止(我的意思是可控的?) 例如。如果發生用戶交互,那麼我可以用這個來停止當前的線程嗎? – MrBuBBLs 2010-03-30 17:22:45

+0

是的,你可以調用'cancel()' – Pentium10 2010-03-30 18:03:49

+0

請記住,取消Java中的線程往往是一種挫敗感。這不是特定於Android的,而是Java特有的。在可能的範圍內,設計您的後臺工作以避免取消任務 - 只需讓他們完成即可。 – CommonsWare 2010-03-30 18:37:22

0

有在庫中一些管理人員(我相信其他人會推薦),但像我這樣你可能會在長期內更好地找到它來建立一個能滿足您的需要。

它可以非常簡單,並且可以通用於Java而不僅僅是Android。它可能只是一個Runnables的ArrayList。一種方法是將一個可運行的程序添加到ArrayList的後面。這個方法第一次被調用時,一個新的線程被初始化並運行。這個線程只是從ArrayList的前面反覆刪除一個Runnable,並執行它。當ArrayList爲空時,線程退出。

您需要注意保持對ArrayList線程的安全訪問,但它確實可以非常簡單。

如果您需要添加優先級或取消隊列中或正在進行的任務,事情會變得更加複雜一些。

+0

我現在知道的是,它必須是單例模式,並且它需要可鎖定(意味着只有正在運行的線程才能將項目添加到我的列表視圖中)......或者類似的東西:s – MrBuBBLs 2010-03-30 14:19:38

相關問題