我正在尝试使用处理程序将消息从一个线程发送到我的 UI 线程。我正在使用 pusher API (pusher.com) 发送消息。他们进来了,我可以看到他们进来的速度非常快,但是 UI 线程需要一段时间才能通过处理程序获取消息,并将它们排队而不是在有东西进来时立即发送和释放。
有没有更好的方法在没有处理程序的情况下执行此操作,或者有一种方法可以摆脱队列,以便一旦消息进入处理程序就可以处理它?
这是发送已进入线程的消息
public void onEvent(String eventName, String eventData, String channelName) {
String sentence = new String(eventData);
try {
Message msg = new Message();
Bundle b = new Bundle();
b.putString("message",sentence);
msg.setData(b);
// send message to the handler with the current message handler
mHandler.sendMessage(msg);
} catch (Exception e) {
Log.v("Error", e.toString());
}
Log.e("server Thread", eventData);
// mHandler.obtainMessage(MakeLightActivity.PACKET_CAME,sentence).sendToTarget();
}
这就是我在我的 UI 线程中阅读它的地方
private final Handler mHandler = new Handler() {
@Override
public void handleMessage(Message msg) {
Bundle b = msg.getData();
String key = b.getString("message");
incomingMessage = key;
if (key.length() >= 30){
Log.d(TAG, "key" + key);
messageCame(key);
}
}
};