Java Android后台线程通信
我想从主线程创建两个可以相互通信的线程(T1和T2)。我正在寻找实现这一目标的最佳方法。 我的想法是与处理程序一起执行此操作。这样行吗? 问题是我不知道T1如何获得T2的处理程序引用,反之亦然 编辑Java Android后台线程通信,java,android,multithreading,android-handler,Java,Android,Multithreading,Android Handler,我想从主线程创建两个可以相互通信的线程(T1和T2)。我正在寻找实现这一目标的最佳方法。 我的想法是与处理程序一起执行此操作。这样行吗? 问题是我不知道T1如何获得T2的处理程序引用,反之亦然 编辑 让我更详细地解释一下情况。如果T1中发生了某种情况,我想把它发送给T2,这样T2可以做其他的工作 您可以这样做: public class Test { static abstract class MyThread extends Thread implements Callback{
让我更详细地解释一下情况。如果T1中发生了某种情况,我想把它发送给T2,这样T2可以做其他的工作 您可以这样做:
public class Test {
static abstract class MyThread extends Thread implements Callback{
Callback mCallback;
public void setCallBack(Callback pCallBack){
mCallback = pCallBack;
}
}
static interface Callback{
public void onAction(Object... args);
}
public static void main(String args[]){
MyThread T1 = new MyThread(){
@Override
public void onAction(Object... args) {
//code when onAction is called.
}
public void run(){
//T1 thread code here
//if some condition
//call the Callback
mCallback.onAction();
}
};
MyThread T2 = new MyThread(){
@Override
public void onAction(Object... args) {
//code when onAction is called.
//"Other work"
}
public void run(){
//T2 thread code here
}
};
T1.setCallBack(T2);
T2.setCallBack(T1);
T1.start();
T2.start();
}
}
如果他们有血缘关系(亲子关系),这应该不是什么问题,如果不是的话,你需要提供一个共同的场所,让他们可以注册,从而实现他们之间的沟通