我是Android开发的新手。现在我正在尝试解析。我有很多解析 XML 的教程。但我想知道异步解析 XML。我在某个地方找到了,xml 可以使用 AsyncTask 异步加载。谁能帮我找出来。
提前致谢
下面是使用 AsyncTask 的教程:
还有一个用于解析 RSS / XML:
您需要在 AsyncTask 的 doInBackground 中调用您的解析函数。
public class _StackOverflowActivity extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
String yourXmlString = "<put your xml String here>";
ParseXMLTask parseXMLTask = new ParseXMLTask();
parseXMLTask.execute(yourXmlString);
}
class ParseXMLTask extends AsyncTask<String, Void, Void> {
@Override
protected Void doInBackground(String... params) {
String yourXml = params[0];
//Parse your xml here
return null;
}
@Override
protected void onPostExecute(Void result) {
super.onPostExecute(result);
//do something after parsing is done
}
}
}
首先,您必须扩展类 AsyncTask。在我的示例中,我将其命名为 ParseXMLTask。
AsyncTask 要求您实现一种方法,即“doInBackground”。doInBackground 在单独的线程中运行,将用于解析 xml 的代码放在那里。
线程完成后,调用 onPostExecute。onPostExecute 在您的主线程中运行,如果您希望在 doInBackground 完成后执行某些操作,可以使用它
要使用 ParseXMLTask,您必须将它实例化为一个对象。然后运行命令.execute()
。您可以传递execute
与我所做的类似的对象parseXMLTask.execute(yourXmlString);
。您可以传递任意数量的变量,并确保以doInBackground
类似于String yourXml = params[0];
. 如果您在 .execute say... 中传递了第二个变量,请通过 doInBackgroundparseXml.execute(yourXmlString, my2ndVariable);
处理它
String yourXml = params[0];
String the2ndVariable = params[1];
当您调用 .execute 时,您告诉 AsyncTask 在单独的线程中运行您放置在 doInBackground 中的任何代码。