通过android smack
库发送邮件时,我遇到了一些性能问题。如果我连续发送几条消息而没有等待,我的ui会暂时停留,直到发送所有消息,即使我是在后台线程上发送它们。
我发送消息的相关代码如下所示.-
XMPPHelper.java
public void sendMessage(final MessageDto message, final UserDto user) {
new Thread(new Runnable() {
public void run() {
Chat chat = getChat(userJid);
try {
chat.sendMessage(message);
} catch (NotConnectedException e) {
e.printStackTrace();
}
}
}).start();
}
瓶颈在线
chat.sendMessage(message.getMessage());
任何人都面临类似的性能问题,或者可以指出正确的方向来提升消息发送性能?
修改
以下是我如何调用运行该线程的方法.-
MyActivity.java
...
textMessage.setOnEditorActionListener(new EditText.OnEditorActionListener() {
@Override
public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
sendMessage(textMessage);
return true;
}
});
private void sendMessage(EditText textMessage) {
// ...
// Some code to add the message to a ListView
// ...
XMPPHelper.getInstance().sendMessage(message, user);
textMessage.getText().clear();
}
作为旁注,网络连接看起来非常快,在不到一秒的时间内发送一条消息。我猜Smack内部保留了某种消息队列,它有意义吗?