ハンドラーを使用して、あるスレッドから UI スレッドにメッセージを送信しようとしています。プッシャー 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);
}
}
};