2012-04-13 61 views
0

我創建一個線程來處理一些隊列數據。在線程內部有一個無限循環。當循環工作時,界面始終凍結。ANDROID - while循環內線程

我對此感到困惑,我創建了線程,但它爲什麼仍然凍結?

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

針對此問題的任何解決方案?

+0

改變你的方法。 – JoxTraex 2012-04-13 08:14:53

+0

你需要什麼while循環?我想你嘗試在背景中做點什麼?然後可能檢查AsyncTask – george 2012-04-13 08:17:09

+0

@Felix ..你在While循環中做什麼很重要..希望它不會創建對象... – ngesh 2012-04-13 08:18:42

回答

3

它不只是你的界面變慢,實際上你的手機也會因爲你在一個while循環中消耗(不必要的浪費)所有的處理能力。爲了更好的方法,在你的線程中使用Handler和/或AsyncTask或至少使用Thread.sleep while循環。

+0

呵呵,我覺得當我用一個新的線程時,會不會減慢界面呢? – felangga 2012-04-13 08:27:58

+2

是的,它確實創建了一個新線程,但該線程也完全佔用了處理器。嘗試把** Thread.sleep(1000); **在while循環中,你會看到區別 – waqaslam 2012-04-13 08:29:58

+0

噢好吧,感謝你@Waqas。我會試試看。 對不起,但我的聲望還不足以投票你的解決方案:( – felangga 2012-04-13 08:32:19