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