2012-05-22 101 views
0

我是Android開發的新手。現在我正試圖解析。我有很多解析XML的教程。但我想知道異步解析XML。我找到了某處,可以使用AsyncTask異步加載xml。任何人都可以幫我找出答案。解析Android中的XML - AsyncTask

在此先感謝

回答

1
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在一個單獨的線程的任何代碼。

+0

Thanks Mussharp。你能簡單介紹一下這個類如何使用? –

+0

編輯我的答案。 –