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