mConsumer.setOnReceiveMessageHandler(new OnReceiveMessageHandler() { public void onReceiveMessage(byte[] message) { String text = ""; try { text = new String(message, "UTF8"); } catch (UnsupportedEncodingException e) { e.printStackTrace(); } mOutput.append("\n" + text); } });
1.消费者从 interface OnReceiveMessageHandler接口重载新方法OnReceiveMessage
final Runnable mReturnMessage = new Runnable() { public void run() { mOnReceiveMessageHandler.onReceiveMessage(mLastMessage); } };
final Runnable mConsumeRunner = new Runnable() { public void run() { Consume(); } };
重载的方法接受收到的消息,更新界面
2.
Handler
,它直接继承自Object,一个Handler允许发送和处理Message或者Runnable对象,并且会关联到主线程的MessageQueue中
创建了两个hanlder,运用到消息更新上,mMessageHandler是传递显示UI消息的Runnable对象,mConsumeHanderl是传递接听消息的循环Runnable对象
private Handler mMessageHandler = new Handler(); private Handler mConsumeHandler = new Handler();
3
在mConsumerRunable中的Consume函数调用了mReturnMesasge Runnable更新界面