工作线程之间的通信

时间:2013-06-30 15:53:50

标签: android multithreading communication

我在Android环境下编程,我在我的项目中有一个Main Activity,其中有一个AsynkTask类,另外还有一个Thread对象,实现了扩展Runnable接口。现在,AsynkTask和Thread可以看作是由主线程管理的两个工作线程,即Main Activity。如果我想在两个工作线程之间进行通信而不涉及主线程,我该怎么办?我如何使用处理程序来实现这一点?我知道如何在主线程和工作线程之间使用处理程序。我想知道如何在工作线程之间使用它们,因为在这种情况下我不能传入构造函数处理程序,因为在这种情况下我不能直接实例化一个线程,将它作为参数传递给主线程创建的处理程序。主线程必须创建两个工作线程,并且它们必须在没有主线程参与的情况下进行通信。 我希望我已经足够清楚了。

1 个答案:

答案 0 :(得分:2)

如果要使用具有工作线程的Handler,则必须按照http://developer.android.com/reference/android/os/Looper.html中的说明在该线程上创建Looper。

像这样:

 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();
      }
  }

然后,您可以从任何其他mHandlerThread发送消息。