我是Android開發的新手。現在我正試圖解析。我有很多解析XML的教程。但我想知道異步解析XML。我找到了某處,可以使用AsyncTask異步加載xml。任何人都可以幫我找出答案。解析Android中的XML - AsyncTask
在此先感謝
我是Android開發的新手。現在我正試圖解析。我有很多解析XML的教程。但我想知道異步解析XML。我找到了某處,可以使用AsyncTask異步加載xml。任何人都可以幫我找出答案。解析Android中的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);
中的對象。您可以根據需要傳遞儘可能多的變量,並確保在類似於String yourXml = params[0];
的doInBackground
中處理它們。如果你有.execute通過第二可變說... parseXml.execute(yourXmlString, my2ndVariable);
,處理它在doInBackground通過
String yourXml = params[0];
String the2ndVariable = params[1];
當你調用.execute你告訴的AsyncTask運行已放置在doInBackground在一個單獨的線程的任何代碼。
Thanks Mussharp。你能簡單介紹一下這個類如何使用? –
編輯我的答案。 –