我在为RssReader运行我的Android项目时遇到错误.
码:
URL url = new URL(urlToRssFeed);
SAXParserFactory factory = SAXParserFactory.newInstance();
SAXParser parser = factory.newSAXParser();
XMLReader xmlreader = parser.getXMLReader();
RssHandler theRSSHandler = new RssHandler();
xmlreader.setContentHandler(theRSSHandler);
InputSource is = new InputSource(url.openStream());
xmlreader.parse(is);
return theRSSHandler.getFeed();
它显示以下错误:
android.os.NetworkOnMainThreadException
我该如何解决这个问题?
此代码不起作用:
URL         url   = new URL( xmlPath );
InputSource input = new InputSource( url.openStream() );
始终导致UnknownHostException,即使主机存在,也使用相同的代码成功命中,如果来自不同的开发主机(机器),也来自浏览器.
我可能会再次问这个问题,重复Android java.net.UnknownHostException:主机未解决(策略问题).论坛软件不允许我对该问题的不满意答案发表评论(为了更多地关注我最终找到的解决方案).也许我还不够受欢迎而没有得到这种特权.与此同时,我基本上重新发布了问题和不同的答案.
基本上,我接受在某些情况下Android设备可能很难使用DNS,但我已经尝试过,例如anddev.org如何使用SAX解析器的例子,它在我拥有的一台机器上工作而不是另外一个.
编辑:如上所述,我知道一个有效的答案,并将发布.
我是a)提出一个问题(已经被问到并且没有成功回答)和b)为了那些对我有帮助的人的利益而回答它.
由于各种原因,我需要runOnUiThread()实际的WebView实例化和初始化.
这意味着它的底层HTTP连接也是在UI线程上进行的?
如果这是真的,是否可以将WebView的UI thead与HTTP连接线程分开?
如果有可能,实现这一目标的正确方法是什么?
android httpconnection android-networking android-webview android-asynctask