0

我创建了一个线程来处理一些队列数据。在线程内部有一个无限的while循环。当循环工作时,界面总是冻结。

我对此感到困惑,我已经创建了线程,但为什么它仍然冻结?

Thread queue = new Thread(new Runnable() {
   public void run() {
        while(true) {
          ...
        }
    }
  }); 
  queue.start;

这个问题有什么解决办法吗?

4

1 回答 1

3

这不仅是您的界面变慢了,事实上您的手机也会变慢,因为您在一个 while 循环中消耗(不必要地浪费)所有的处理能力。要获得更好的方法,请使用Handler和/或AsyncTask或至少Thread.sleep在线程中的 while-loop 内部使用。

于 2012-04-13T08:18:13.737 回答