我有一个长时间运行的代码,用于解析XML并更新我的UI上的某些TextView,代码运行良好,但我需要将它放入AsyncTask中,我很新Android和我试图做到这一点,但它没有奏效。有人可以告诉我我做错了什么。使用AsyncTask更新我的用户界面(Android)
class UpdaterThread extends AsyncTask<Void, String, Void> {
@Override
protected Void doInBackground(Void... params) {
try {
URL url = new URL(
"http://www.google.com/ig/api?weather=Cardiff");
SAXParserFactory spf = SAXParserFactory.newInstance();
SAXParser sp = spf.newSAXParser();
XMLReader xr = sp.getXMLReader();
WeatherHandler myWeatherHandler = new WeatherHandler();
xr.setContentHandler(myWeatherHandler);
xr.parse(new InputSource(url.openStream()));
}
catch (Exception e) {
}
return null;
}
@Override
protected void onPostExecute(Void result) {
super.onPostExecute(result);
SetWeather mySetWeather = new SetWeather();
temp.setText(mySetWeather.getTemp());
wind.setText(mySetWeather.getWind());
humidity.setText(mySetWeather.getHumidity());
}
}
我还用.execute()方法在我的主类来运行它。
你是说你试过这样的事情? UpdaterThread ut = new UpdaterThread(); ut.execute(null,null); – max4ever 2011-04-28 15:45:54
是类似的东西,但没有null,null – Amanni 2011-04-28 15:58:43
考虑:类UpdaterThread扩展AsyncTask –
JAL
2011-04-28 22:06:42