这段MQTT代码怎么不执行呢?Log也没有打印,也没有弹窗显示
handler = new Handler() {
@SuppressLint("SetTextI18n")
public void handleMessage(Message msg) {
super.handleMessage(msg);
switch (msg.what){
case 1: //开机校验更新回传
break;
case 2: // 反馈回传
break;
case 3: //MQTT 收到消息回传 UTF8Buffer msg=new UTF8Buffer(object.toString());
Toast.makeText(MainActivity.this,msg.obj.toString() ,Toast.LENGTH_SHORT).show();
Log.v("MainActivity","handSwitch1");
text_test.setText(msg.obj.toString());
break;
case 30: //连接失败
Log.v("MainActivity","handSwitch2");
Toast.makeText(MainActivity.this,"连接失败" ,Toast.LENGTH_LONG).show();
break;
case 31: //连接成功
Log.v("MainActivity","handSwitch3");
Toast.makeText(MainActivity.this,"连接成功" ,Toast.LENGTH_LONG).show();
try {
client.subscribe(mqtt_sub_topic,1);
} catch (MqttException e) {
e.printStackTrace();
}
break;
default:
break;
}
}
};
RetainedMessages
。MQTT
中,无论是发布还是订阅都不会有任何触发事件。1个Topic
只有唯一的retain
消息,Broker
会保存每个Topic
的最后一条retain
消息。发布消息时把retain
设置为true
,即为保留信息。每个Client
订阅Topic
后会立即读取到retain
消息。如果需要删除retain
消息,可以发布一个空的retain
消息,因为每个新的retain
消息都会覆盖最后一个retain
消息。