2

我对某事有点困惑。基本上,我正在生成一个线程,此外我还想在该线程中运行一个消息循环。我基本上是在做以下事情:这直接来自 Android Looper 类 API 文档。但是,我的应用程序总是卡在 Looper.loop() 并且永远不会从中返回。我目前的解决方法是在主线程(或 UI 线程)中创建一个处理程序,然后将消息发送到该线程。然而,为了清洁和让我的应用程序的流程有意义,我更愿意将我的消息发送到我正在创建的线程。

class LooperThread extends Thread {
      public Handler mHandler;

      public void run() {
          Looper.prepare();

          mHandler = new Handler() {
              public void handleMessage(Message msg) {
                  // process incoming messages here
              }
          };

          Looper.loop();
          // The rest of the code below is a control loop
      }
}

关于可能导致 Looper.loop() 永远不会返回的任何想法?

4

2 回答 2

7

Looper.loop创建一个无限循环,并且仅在您调用时停止quit

http://developer.android.com/reference/android/os/Looper.html#loop()

于 2013-07-18T15:33:51.493 回答
-2

这可能有效

class LooperThread extends Thread {
      public Handler mHandler;

      public void run() {
          Looper.prepare();
          while(true){
             mHandler = new Handler() {
                public void handleMessage(Message msg) {
                  // process incoming messages here
                }
             };
          }
          // The rest of the code below is a control loop
      }
}
于 2015-02-11T07:52:12.533 回答