这是我的代码
这是我的InstantMessage应用程序
当应用程序有新消息时,processMessage将自动执行该方法
我的问题是当方法processMessage执行时textview不起作用但是当textview更新时我发送消息时都使用相同的updateChat方法
@Override
public void onClick(View v) {
String message = text.getText().toString();
try {
Log.e("On Click", message + " : " + contact);
chat.sendMessage(message);
message = username + " : " + message;
updateChat(message);
} catch (XMPPException e) {
e.printStackTrace();
}
}
public void updateChat(String message){
chatLog += message + "\n";
chatBox.setText(chatLog);
}
@Override
public void processMessage(org.jivesoftware.smack.Chat arg0, Message arg1) {
String temp = InstantMessage.usernameCutter(arg0.getParticipant()) + " : "+ arg1.getBody();
Log.e("ChatPage ", "ProcessMessage");
updateChat(temp);
}
答案 0 :(得分:0)
processMessage方法是否在UI线程上运行? 如果没有,请使用此构造
final String temp = InstantMessage.usernameCutter(arg0.getParticipant()) + " : "+ arg1.getBody();
runOnUiThread(new Runnable() {
public void run() {
updateChat(temp);
}
});