Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/232.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java ANDROID-While线程内循环_Java_Android_Multithreading_Loops_While Loop - Fatal编程技术网

Java ANDROID-While线程内循环

Java ANDROID-While线程内循环,java,android,multithreading,loops,while-loop,Java,Android,Multithreading,Loops,While Loop,我创建了一个线程来处理一些队列数据。在线程内部有一个无限的while循环。当循环工作时,接口总是冻结 我对此感到困惑,我已经创建了线程,但为什么它仍然冻结 Thread queue = new Thread(new Runnable() { public void run() { while(true) { ... } } }); queue.start; 这个问题有什么解决办法吗 不仅仅是你的界面变慢了,事实上你的手

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

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

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


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

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

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

您需要while循环做什么?我想你是想在幕后做点什么?那也许去看看AsyncTask@Felix .. While循环中的操作非常重要。。希望它不是在创造物体……是的,你是对的。我正在使用asynctask,但它遇到了相同的问题。我需要无限循环来观察变量何时更改。在while循环中发布您的操作。。。我是说里面的代码…@sandy不,我不是在创建对象。我试图监控一个变量,从互联网上下载一些数据。就像在while循环中一样:if(address!=null){result=result+downloaddata(address);}您需要while循环做什么?我想你是想在幕后做点什么?那也许去看看AsyncTask@Felix .. While循环中的操作非常重要。。希望它不是在创造物体……是的,你是对的。我正在使用asynctask,但它遇到了相同的问题。我需要无限循环来观察变量何时更改。在while循环中发布您的操作。。。我是说里面的代码…@sandy不,我不是在创建对象。我试图监控一个变量,从互联网上下载一些数据。就像while循环中的这个:if(address!=null){result=result+downloaddata(address);}哦,我认为当我使用一个新线程时,不会减慢接口速度吗?是的,它确实创建了一个新线程,但该线程也完全占用处理器。试着放线。睡眠(1000);在while循环中,您将看到不同之处。好的,感谢您@Waqas。我试试看。很抱歉,但我的声誉还不足以支持你的解决方案:(哦,我想当我使用一个新线程时,不会减慢接口速度吗?是的,它确实创建了一个新线程,但该线程也完全占用了处理器。试着放线程。sleep(1000);在while循环中,您将看到不同之处h好的,多亏了您@Waqas。我会尝试一下。很抱歉,我的声誉不足以支持您的解决方案:(