Android 工作线程之间的通信

Android 工作线程之间的通信,android,multithreading,communication,Android,Multithreading,Communication,我在Android环境下编程,在我的项目中有一个主要活动,其中有一个AsynkTask类,另外还有一个Thread对象,实现了对Runnable接口的扩展。现在,AsynkTask和线程可以看作是由主线程(即主活动)管理的两个工作线程。如果我想使两个工作线程之间的通信成为可能,而不涉及主线程,我该怎么办?我如何使用处理程序来实现这一点?我知道如何在主线程和工作线程之间使用处理程序。我想知道如何仅在工作线程之间使用它们,因为在本例中,我无法传入构造函数处理程序,因为在本例中,我无法直接实例化线程,

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

如果您想将处理程序与工作线程一起使用,您必须在该线程上创建一个循环器,如中所述

像这样:

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

然后您可以从任何其他
线程向
mHandler
发送消息。首先,感谢您的回答。好的,我可以在两个工作线程之一中创建这个处理程序。但是我如何在另一个线程中接收消息呢?我会在每个工作线程中创建一个处理程序,是什么阻止了你这么做?我认为两个工作线程之间的通信是必要的,一个工作线程创建的处理程序作为参数传递给另一个工作线程的构造函数,这是我的问题,由于主线程实例化了两个工作线程,当它执行此操作时,它不知道由一个线程创建的处理程序将其作为输入传递给另一个线程。不,您可以只发送mThread.mHandler.send(mHandler.obtainMessage())