Android 在不同的线程中处理XmlParsing
我正在开发一个应用程序,我必须解析URL中XML的数据。我的解析器现在正在运行并向我显示数据,但我遇到的问题是我无法正确处理解析数据的过程。我的应用程序被片段分割,每个片段将显示一些信息。我正在从一个片段执行所有解析/http连接。现在应用程序不显示数据,我使用Log.d来显示结果,但是当数据显示在logcat上时,应用程序就像冻结或暂停一样。这是连接到xml URL的方法:Android 在不同的线程中处理XmlParsing,android,multithreading,xml-parsing,android-handler,Android,Multithreading,Xml Parsing,Android Handler,我正在开发一个应用程序,我必须解析URL中XML的数据。我的解析器现在正在运行并向我显示数据,但我遇到的问题是我无法正确处理解析数据的过程。我的应用程序被片段分割,每个片段将显示一些信息。我正在从一个片段执行所有解析/http连接。现在应用程序不显示数据,我使用Log.d来显示结果,但是当数据显示在logcat上时,应用程序就像冻结或暂停一样。这是连接到xml URL的方法: public void loadXML(){ Thread thread=new Thread(new
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();
}
在Fragment类中,我在片段的onStart()中调用loadXML()方法。除了代码中显示的线程之外,我没有创建任何其他线程或调用任何其他方法。
任何帮助或信息将不胜感激。谢谢您是否尝试调用getActivity().runOnUiThread(操作)?我将在上浏览android开发者页面。我想这里的示例正是您想要的。我还没有检查是否可以使用此方法,我正在检查,谢谢
private Handler handler = new Handler(){