У меня есть эта проблема, почему, когда я запускаю AsyncTask в своем приложении, CPU всегда работает на самой высокой частоте. Может ли кто-нибудь помочь мне, как я могу избежать этого.Почему AsyncTask заставляет процессор работать на высокой частоте?
ответ
Я думаю, это потому, что вы делаете что-то в трудной петле. Просто потому, что что-то находится в AsyncTask
, это не значит, что он невосприимчив к требованию использовать хорошие привычки программирования.
Я получаю некоторую строку из некоторого кода через команду cat unix, а затем редактирую текст с этой строкой. Я использую его в бесконечном цикле. – Adam
Итак, если вы делаете что-то в бесконечном цикле, как вы можете ожидать чего-либо _but_ 100% использования ЦП? В вашей 'doInBackground()', вставьте вызов 'Thread.sleep (500);', чтобы процессор мог делать другие вещи. –
Хотя 'sleep (500)' лучше, чем 'While (1)' ... Я все равно думаю, что есть лучшее событие для запуска, особенно если это предназначено для работы на телефоне. –
Что вы делаете в задаче? – jprofitt
Какова ваша задача асинхронного действия? Это фактически вызывает 100% использование ЦП (как сообщается диспетчером задач)? До относительно новой функции шага скорости (или того, что они называют сейчас) процессор ** всегда ** работал на самой высокой частоте, но он просто останавливается, когда больше нет задач для запуска. –
Я получаю строку из некоторого кода через команду cat unix, а затем редактирую текст с этой строкой. Я использую его в бесконечном цикле. – Adam