2010-11-28 88 views
2

我有一個線程用於偵聽TCP連接。在建立連接時,我想基本停止當前活動正在進行的操作,然後轉到另一個運行不同線程並顯示不同佈局的活動。從線程獲取當前活動

現在我還想保持該線程在運行(等待TCP連接)。

我可以在一個Intent上使用startActivity()將活動從一個更改爲另一個,但在我的線程內不起作用。

我該如何實現該行爲?

非常感謝,

詹姆斯

Android中長時間運行的任務編程的經驗

回答

5

規則。如果您有:

  1. 短時間運行的任務(線程),它一次只能使用一個活動,然後使用AsyncTask

  2. 長期運行的應該生存活動的生命週期和/或用於由多個活動(也可外接到您的應用程序),比使用Service任務。服務是一個獨立的過程,比活動更易於關閉。

  3. 需要基於某些外部條件運行的任務,如:位置已更改,網絡可用等。或者,如果您需要定期數據同步或基於計時器的任務,則無需擁有任務運行,只需用適當的API註冊代碼,操作系統會在適當的時候調用它。這被稱爲異步編程,並且是Android上的首選選項,因爲它在需要調用代碼時僅通過調用代碼來最大限度地減少內存和處理器的使用。

+0

非常感謝那些解釋,這是非常有用的。我需要使用服務或API(2或3)。我不確定是否有可以「等待TCP連接」的API。你知道我怎麼能找到那個嗎?否則謝謝!很有幫助! – James 2010-11-28 12:29:35