2012-02-10 2 views
-2

У меня есть эта проблема, почему, когда я запускаю AsyncTask в своем приложении, CPU всегда работает на самой высокой частоте. Может ли кто-нибудь помочь мне, как я могу избежать этого.Почему AsyncTask заставляет процессор работать на высокой частоте?

+0

Что вы делаете в задаче? – jprofitt

+0

Какова ваша задача асинхронного действия? Это фактически вызывает 100% использование ЦП (как сообщается диспетчером задач)? До относительно новой функции шага скорости (или того, что они называют сейчас) процессор ** всегда ** работал на самой высокой частоте, но он просто останавливается, когда больше нет задач для запуска. –

+0

Я получаю строку из некоторого кода через команду cat unix, а затем редактирую текст с этой строкой. Я использую его в бесконечном цикле. – Adam

ответ

0

Я думаю, это потому, что вы делаете что-то в трудной петле. Просто потому, что что-то находится в AsyncTask, это не значит, что он невосприимчив к требованию использовать хорошие привычки программирования.

+0

Я получаю некоторую строку из некоторого кода через команду cat unix, а затем редактирую текст с этой строкой. Я использую его в бесконечном цикле. – Adam

+0

Итак, если вы делаете что-то в бесконечном цикле, как вы можете ожидать чего-либо _but_ 100% использования ЦП? В вашей 'doInBackground()', вставьте вызов 'Thread.sleep (500);', чтобы процессор мог делать другие вещи. –

+0

Хотя 'sleep (500)' лучше, чем 'While (1)' ... Я все равно думаю, что есть лучшее событие для запуска, особенно если это предназначено для работы на телефоне. –