2 回答
![?](http://img1.sycdn.imooc.com/54586453000163bd02200220-100-100.jpg)
TA贡献1829条经验 获得超7个赞
您可以client.subscribe()根据需要多次拨打不同的主题。
private void setSub()
{
try{
client.subscribe(topic1,0);
client.subscribe(topic2,0);
client.subscribe(topic3,0);
}
catch (MqttException e){
e.printStackTrace();
}
}
该messageArrived()回调传递的topic每封邮件,所以你只需设置一个if语句取决于其主题TextView的决定更新。
@Override
public void messageArrived(String topic, MqttMessage message) throws Exception {
if (topic.equals(topic1) {
temp.setText(new String(message.getPayload()));
} else if (topic.equals(topic2) {
foo.setText(new String(message.getPayload()));
}
}
但是您不应该setText()在回调中调用该方法,因为它发生在客户端线程上。您需要查看runOnUiThread()用于执行更新的方法。
![?](http://img1.sycdn.imooc.com/5458506b0001de5502200220-100-100.jpg)
TA贡献1898条经验 获得超8个赞
我刚刚想通了
if (topic.contains("button") ) {
temp.setText(new String(message.getPayload()));
}
else if (topic.contains("test"))
{
volt.setText(new String(message.getPayload()));
}
我刚刚输入了要显示的每个主题的名称。
添加回答
举报