我正在通过蓝牙从应用程序发送一些信号。

我的应用程序的工作方式是从输入一个处理所有与蓝牙相关的事情的活动开始。这里显示了所有找到的设备的布局。

按下设备时,它会连接到该设备,如下所示:

public BTCommunicator myBTCommunicator = null;


将MAC地址放入其中。

成功连接后,我将进行一堆带有按钮监听器的活动。

发生的情况是,当您按下按钮时,它会从蓝牙活动中调用一个函数,该活动将向外部设备发送信号。

public void updateMotorControl(int int,int right){

    if (myBTCommunicator != null) {
        // send messages via the handler
        sendBTCmessage(BTCommunicator.NO_DELAY, motorLeft, left * directionLeft, 0);
        sendBTCmessage(BTCommunicator.NO_DELAY, motorRight, right * directionRight, 0);
    }


问题是,当我们返回时,myBTCommunicator ==再次为null。当我检查我的外部设备时,它仍然处于连接状态,但是显然,当您离开并返回时,myBTCommunicator没有保存。有办法解决吗?

最佳答案

使您的连接全局静态

public BTCommunicator myBTCommunicator = null;




SomeGlobal.class
public static BTCommunicator myBTCommunicator;

07-27 17:14