我正尝试在我的安卓应用程序中使用SocketIO与服务器进行通信。
下面是我的代码:
socket = IO.socket("server-address");
socket.connect();
socket.on("init", new Emitter.Listener()
{
@Override
public void call(Object... args)
{
handleResult(args[0].toString());
}
});我无法从call函数更新UI,因为它运行在与UI相同的线程中(据我所知)。
我也尝试过使用AsyncTask,但它在“调用”完成之前就转移到了doInBackground上。
如何从这个调用函数中更新UI?或者我如何从中发送一些数据?
发布于 2018-03-28 18:09:54
不能从non-UI thread更改UI元素。使用runOnUiThread更新UI。
runOnUiThread(new Runnable(){
@Override
public void run(){
// Updat UI here
}
});另一种更新UI的方法是使用处理程序。
private void updateUI(final String stringData) {
new Handler().post(new Runnable() {
@Override
public void run() {
// Updat UI here
}
});
}https://stackoverflow.com/questions/49531571
复制相似问题