我正在开发一个应用程序,我必须从URL中解析XML中的数据。我的解析器现在正在运行并向我显示数据,但我遇到的问题是我无法正确处理解析数据的过程。我的应用程序按片段分割,每个片段都会显示一些信息。我正在从一个片段进行所有解析/ http连接。现在应用程序不显示数据,我使用Log.d来显示结果,但是当数据显示在logcat上时,应用程序就像冻结或暂停一样。这是连接到xml的URL的方法:
public void loadXML(){
Thread thread=new Thread(new Runnable(){
public void run(){
try{
URL url=new URL(FEED_URL);
HttpURLConnection conn=(HttpURLConnection)url.openConnection();
conn.setReadTimeout(1000);/*miliseconds*/
conn.setConnectTimeout(1500);
conn.setRequestMethod("GET");
conn.setDoInput(true);
conn.connect();
InputStream stream=conn.getInputStream();
XmlPullParserFactory factory=XmlPullParserFactory.newInstance(); /*Instantiate new parser*/
XmlPullParser xmlParser=factory.newPullParser();
xmlParser.setFeature(XmlPullParser.FEATURE_PROCESS_NAMESPACES, false);
xmlParser.setInput(stream,null);
items=(ArrayList<Item>) XmlFeedParser.parser(xmlParser);//the method that does the parsing
stream.close();
}catch(Exception e){
e.printStackTrace();
}
}
});
thread.start();
}
据我所知,我必须使用Handler,但我只有这一行
private Handler handler = new Handler(){
在Fragment类中,我在我的片段的onStart()中调用了loadXML()方法。除了代码中显示的Thread,我不是创建任何其他线程或调用任何其他方法。
任何帮助或信息将不胜感激。感谢
答案 0 :(得分:0)
您是否尝试过调用getActivity()。runOnUiThread(action)?
答案 1 :(得分:0)
我会在Parsing XML Data上阅读这个Android开发者页面。我认为那里的例子正是你所寻找的。 p>