我有一个将访问网络的应用程序。我决定使用 Spring Android 作为 RestAPI,并在 Thread
的帮助下让这个简单的演示工作。我的问题是,如何将其更改为填充实际的 ListView
而不仅仅是记录对象的输出?这里的一些其他问题让我相信 AsyncTask
可能是答案,但我仍然对如何更新 UI 感到困惑,因为据我了解其他线程可以'不要碰它。
这是我现在所拥有的,减去创建 RestTemplate 并发出请求的函数,因为我认为它不相关:
public void onCreate( Bundle savedInstanceState )
{
super.onCreate( savedInstanceState );
new Thread( new Runnable() {
public void run()
{
// create a RestTemplate. This is used to communicate with the server.
RestTemplate restTemplate = getRestTemplate();
String url = "http://192.168.2.14:8888/";
JSONData[] jsonData = restTemplate.getForObject( url, JSONData[].class );
for( JSONData d : jsonData )
{
Log.d( "TEST", d.getName() + " " + d.getId() );
}
}
} ).start();
setContentView( R.layout.main );
}
最佳答案
如果想从不同的线程更改 UI,可以使用 Handler 或 Activity.runOnUiThread()。
关于java - Android - 正确的多线程/UI 更新,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9702997/