2

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

4

1 回答 1

2

如果您想使用带有工作线程的处理程序,您必须在该线程上创建一个 Looper,如http://developer.android.com/reference/android/os/Looper.html中所述。

像这样:

 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从任何其他Thread.

于 2013-06-30T16:13:13.373 回答