Android 从LAN线程中收集的数据更新UI?
我有一个线程可以查看LAN并收集用于更新ListView的数据。 问题是我不能从UI以外的线程更新ListView。 用户按下一个键,向LAN上的服务器发出查询,然后期望ListView显示数据。Android 从LAN线程中收集的数据更新UI?,android,multithreading,listview,user-interface,Android,Multithreading,Listview,User Interface,我有一个线程可以查看LAN并收集用于更新ListView的数据。 问题是我不能从UI以外的线程更新ListView。 用户按下一个键,向LAN上的服务器发出查询,然后期望ListView显示数据。 进行LAN监控的最佳方法是什么?如果我正确理解了您的问题,您可能会想要以下内容: final Handler mHandler = new Handler(); final Runnable mUpdateResults = new Runnable() { public void run()
进行LAN监控的最佳方法是什么?如果我正确理解了您的问题,您可能会想要以下内容:
final Handler mHandler = new Handler();
final Runnable mUpdateResults = new Runnable() {
public void run() {
updateUI();
}
};
private void getLAN() {
Thread t = new Thread() {
public void run() {
//do LAN stuff
mHandler.post(mUpdateResults);
}
};
t.start();
}
private void updateUI() {
//update UI
}
两个问题:mHandler.post(mHandler.post(mUpdateResults);这可以从一个永久循环中执行吗?我是否必须转换mUpdateResults?我基本上是从我自己的代码中提取出来的,所以不需要转换。至于循环,我自己没有尝试过,但我不明白为什么不可以,至少值得一试!谢谢-我现在有了这个想法