try {
URL rssUrl = new URL("http://blog.nerdability.com/2013/03/tech-building-rss-reader-android-app.html");
SAXParserFactory factory = SAXParserFactory.newInstance();
SAXParser saxParser = factory.newSAXParser();
XMLReader xmlReader = saxParser.getXMLReader();
RSSHandler rssHandler = new RSSHandler();
xmlReader.setContentHandler(rssHandler);
InputSource inputSource = new InputSource(rssUrl.openStream());
xmlReader.parse(inputSource);
} catch (IOException e) {
e.printStackTrace();
rss.setText("NETWORK ERROR 01");
} catch (SAXException e) {
e.printStackTrace();
rss.setText("NETWORK ERROR 02");
} catch (ParserConfigurationException e) {
e.printStackTrace();
rss.setText("NETWORK ERROR 03");
}
// rss.setText(rssResult);
return null;
我添加了这部分代码doInBackground,我得到了android.view.ViewRoot $ CalledFromWrongThreadException:然后应用程序崩溃了。
答案 0 :(得分:0)
我猜你在catch中使用的变量rss
是你布局中的一个视图。
如果我是正确的,你不能在doInBackground方法中设置文本,而是在该方法中返回该文本并在下一个setp中执行,onPostExecute,此方法从doInBackground接收结果,因此您可以使用在那里输入字符串并在视图中设置文本。
查看AsyncTask中的更多信息。