2012-02-10 40 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