Android在AppActivity中的后台线程中使用MQTT套接字客户端

时间:2017-05-04 04:08:37

标签: java android multithreading sockets mqtt

在我们的应用程序中,为了与服务器通信,我们使用MQTT Client。我们只在应用程序处于Foreground模式时使用套接字,我们可能会通过Socket接收大量消息,因此我们不需要将Socket置于服务中。 我如何在后台线程中使用Socket Client来发送和接收消息,而不会冻结UI。

这是我的Paho MQTT套接字客户端的代码:

mqttAndroidClient = new MqttAndroidClient(getApplicationContext(), serverUri, clientId);
        mqttAndroidClient.setCallback(new MqttCallbackExtended() {
            @Override
            public void connectComplete(boolean reconnect, String serverURI) {

                if (reconnect) {
                    addToHistory("Reconnected to : " + serverURI);
                    // Because Clean Session is true, we need to re-subscribe
                    subscribeToTopic();
                } else {
                    addToHistory("Connected to: " + serverURI);
                }
            }

            @Override
            public void connectionLost(Throwable cause) {
                addToHistory("The Connection was lost.");
            }

            @Override
            public void messageArrived(String topic, MqttMessage message) throws Exception {
                addToHistory("Incoming message: " + new String(message.getPayload()));
            }

            @Override
            public void deliveryComplete(IMqttDeliveryToken token) {

            }
        });

0 个答案:

没有答案