0

我创建了一个井字游戏应用程序(在此处的问题中提到)。现在我在这部分使用石头剪刀布。现在我的做法是有 3 个对应于石头、纸、剪刀的按钮和一个在每个玩家做出选择时必须按下的按钮。在内部,当按下任何石头/纸/剪刀按钮时,一条消息被发送,它被处理程序接收并存储到另一个设备上的字符串中。当玩家按下第 4 个按钮时,游戏会执行逻辑并显示结果。

现在我想摆脱第四个按钮。也就是说,当我按下石头/剪刀/剪刀时,它应该等待其他玩家做出选择,或者如果他已经做出选择,则立即显示结果。我怎样才能做到这一点?无论如何要等待处理程序接收消息(忙于等待除外)?这是我的处理程序的代码:

static Handler receiveChoice = new Handler() {
    @Override
    public void handleMessage(Message msg) {
        int numOfBytesReceived = msg.arg1;
        byte[] buffer = (byte[]) msg.obj;
        String strReceived = new String(buffer);
        strReceived = strReceived.substring(0, numOfBytesReceived);
        opponentChoice = strReceived;
    }
};
4

1 回答 1

0

您想了解wait/notify. 您可以让第一个发送方睡眠,直到它听到另一个发送方的回答。您需要确保决定是否休眠的逻辑与处理传入事件的逻辑同步(使用synchronizedvolatile或原子变量)。

于 2013-08-08T19:48:54.697 回答