2011-09-28 73 views
10

我有一個Android應用程序,有獨立的事情在進行,但基本上都是線程(肯定是線程到Android調試器)Android我可以走多少線程?

有多種動畫聽衆,循環,並呼籲對方

有一個倒數計時器在啓動後總是倒數至零

現在我需要考慮添加更多倒數計時器。我可以進行多少種這樣的循環過程?在這個特定的實現中,我不關心性能,效率等,直到它變得明顯。

洞察讚賞

回答

7

我會很驚訝地發現你筋疲力盡的線程數,你可以在Android應用中安全使用,只要你正確地管理它們的壽命,防止「空循環」和從發生。

雖然我確實學到了一件事,我敢肯定你在任何時候都只能有5個asynctasks可以操作,並且他們會任意地繼續存在並被自己殺死或重生,如果你開始新的...即,如果我轉了一個asynctask,然後關閉了5次調試器會說5個異步線程可以運行,但我可以不斷切換開關,就像我想要的那樣多,因爲資源池會殺死最古老的asynctask。

+0

優秀,良好就知道了。我在不同的應用程序,它使用了很多asynctasks – CQM

0

沒有我知道的最大值。但是,我可以告訴你,你很可能不需要這麼多線程。

您可以使用Android的Handler,特別是postDelayed()方法,在單個線程中保留倒數計時偵聽器。在單獨的線程中啓動Looper,並使用Handler來管理超時 - 不要等待或休眠循環。

+1

你是怎麼做的上攻d工作擁有用戶名? – snapfractalpop

0

我不認爲倒數計時器會創建線程 - 它應該簡單地將您的任務從外觀上添加到主線程的隊列中。

所有聽衆應該發生在同一個線程,以及(有管理的所有監聽器(用於可見對象反正單個線程)。

所以你可能不使用近儘可能多線程的任何地方你認爲你是,如果你創造了很多線程,我會擔心 - 他們很難保持同步,並且可能花費你比獲得的更多,但是列出的結構我會繼續前進並分配你覺得適合作爲許多(但測試性能當然是便宜的設備上)