代码如下
public class MainActivity extends AppCompatActivity {
Handler blackHandler;
Thread blackThread = new Thread("blackThread") {
@Override
public void run() {
Looper.prepare();
blackHandler = new Handler() {
@Override
public void handleMessage(Message msg) {
if (msg.arg1 == 1) {
Message blackMsg = new Message();
blackMsg.arg1 = 2;
switch (msg.what) {
case 1:
Log.i("xx", Thread.currentThread().getName() + " 黑方横中炮");
blackMsg.what = 2;
break;
case 3:
Log.i("xx", Thread.currentThread().getName() + " 黑方出右侧马");
blackMsg.what = 4;
break;
case 5:
Log.i("xx", Thread.currentThread().getName() + " 黑方出右侧车");
blackMsg.what = 6;
break;
}
redHandler.sendMessage(blackMsg);
}
}
};
Looper.loop(); //looper开始处理消息。
}
};
Handler redHandler;
Thread redThread = new Thread("redThread") {
@Override
public void run() {
try {
Thread.sleep(100);
Message msg = new Message();
msg.arg1 = 1;
msg.what = 1;
blackHandler.sendMessage(msg);
Log.i("xx", Thread.currentThread().getName() + " send msg:红方出兵");
Looper.prepare();
redHandler = new Handler(){
@Override
public void handleMessage(Message msg) {
if (msg.arg1 == 2) {
Message redMsg = new Message();
redMsg.arg1 = 1;
switch (msg.what) {
case 2:
Log.i("xx", Thread.currentThread().getName() + " 红方上左侧马");
redMsg.what = 3;
break;
case 4:
Log.i("xx", Thread.currentThread().getName() + " 红方出左侧车");
redMsg.what = 5;
break;
case 6:
Log.i("xx", Thread.currentThread().getName() + " 红方车上河线");
redMsg.what = 7;
break;
}
blackHandler.sendMessage(redMsg);
}
}
};
Looper.loop();
} catch (InterruptedException e) {
e.printStackTrace();
}
}
};
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
blackThread.start();
redThread.start();
}
}