2012-02-10 43 views
-2

我有這個問題,爲什麼當我在我的應用程序中運行AsyncTask時,CPU總是以最高頻率運行。任何人都可以幫助我如何避免它。爲什麼AsyncTask使CPU始終運行在最高頻率?

+0

你在做什麼? – jprofitt 2012-02-10 14:13:18

+0

你的異步任務在做什麼?它實際上是否導致100%CPU使用率(由任務管理器報告)?直到速度步的相對較新的特性(或者他們現在稱之爲的任何其他特性)之前,CPU **總是**以最高頻率運行,但當沒有更多任務要運行時它就停止。 – 2012-02-10 14:14:20

+0

我通過cat unix命令從一些代碼中得到一些字符串,然後用這個字符串編輯textview。我在無限循環中使用它。 – Adam 2012-02-10 14:24:53

回答

0

我想這是因爲你在硬循環中做了一些事情。僅僅因爲AsyncTask中的某些東西並不意味着它不需要使用良好的編程習慣。

+0

我通過cat unix命令從某些代碼中獲得一些字符串,然後使用此字符串編輯textview。我在無限循環中使用它。 – Adam 2012-02-10 14:24:29

+0

所以如果你在無限循環中做一些事情,你怎麼能期望任何東西 - 但100%的CPU使用率?在你的'doInBackground()'中,向'Thread.sleep(500);'插入一個調用以允許CPU執行其他操作。 – 2012-02-10 14:47:56

+0

儘管'sleep(500)'比'While(1)'更好......我仍然認爲有更好的事件可以觸發,特別是如果這是爲了在手機上運行。 – 2012-02-10 15:01:28