我有一个应用程序通过wifi直接与另一部手机(使用相同的应用程序)通信,并且两个手机都必须与bluetooh网桥建立连接。当两个设备都有蓝牙连接时,我想启动倒数计时器。
我的问题。
我正在使用两个布尔值:
private final AtomicBoolean cnoadv = new AtomicBoolean(false);//represents the other user connection
boolean conexao = false ;// represents my connection
当我的连接完成时,boolean是" conexao"是的,我启动了方法" verificar"为了验证两个连接并发送" pronto"给其他用户以便他知道我已经连接:
conexao = true;
verificar();
chatManager.write("pronto".getBytes());
在其他用户端,当我收到消息" pronto"布尔" cnoadv"表示其他用户连接变为true并且还启动方法" verificar"
public void pushMessage(String readMessage) {
if(readMessage.equals("pronto")){
Log.d("recebido", "pronto");
cnoadv.getAndSet(true);
verificar();
}
我验证两个连接的verificar()方法:
public void verificar() {
if ( cnoadv && conexao) { // error here saying i cant use "&&" in atomic boolean
Toast.makeText(getActivity().getApplicationContext(), "both connections done", Toast.LENGTH_SHORT).show();
}}
我的问题:在我的" verificar()"验证两个连接的方法我想检查两个布尔值是否都为真。我该怎么做呢 ?我以错误的方式进行此验证?由于我没有经验,我会给出一个很好但很简单的解释,非常感谢你。
答案 0 :(得分:1)
你应该使用简单的布尔值来使用&&
,所以试试:
public void verificar() {
if ( cnoadv.get() && conexao) { // error here saying i cant use "&&" in atomic boolean
Toast.makeText(getActivity().getApplicationContext(), "both connections done", Toast.LENGTH_SHORT).show();
}}