2012-04-13 10 views
0

私はスレッドデータを処理するスレッドを作成します。スレッドの中には無限のwhileループがあります。ループが動作しているときは、インターフェイスは常にフリーズしています。アンドロイド - whileループのスレッド

私はスレッドを作成しましたが、なぜまだフリーズしていますか?

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

この問題の解決法を教えてください。

+0

あなたのアプローチを変更してください。 – JoxTraex

+0

whileループには何が必要ですか?私はあなたがバックグラウンドで何かをしようとすると思いますか?次に、AsyncTaskをチェックしてください。 – george

+0

@Felix .. Whileループで重要なこと..オブジェクトを作成しないことを願っています... – ngesh

答えて

3

インターフェイスが遅くなるだけでなく、実際にはwhileループ内のすべての処理能力を(不必要に無駄にして)消費しているため、携帯電話にもなります。より良いアプローチのために、スレッド内でHandlerおよび/またはAsyncTaskを使用するか、少なくともwhileループ内でThread.sleepを使用してください。

+0

ああ、私は新しいスレッドを使用すると、インターフェイスを遅くすることはないと思いますか? – felangga

+2

はい、新しいスレッドを作成しますが、そのスレッドもプロセッサを完全に占有します。 ** Thread.sleep(1000); **をwhileループの中に入れてみてください。違いが表示されます – waqaslam

+0

ああ、ありがとう@Waqas。私はそれを試してみます。 私は申し訳ありませんが、私の評判はあなたの解決策を投票するのに十分ではありません:( – felangga