私はAndroid開発の初心者です。今、私は解析しようとしています。XML を解析するためのチュートリアルがたくさんあります。しかし、XML を非同期的に解析する方法を知りたいです。私はどこかで、AsyncTask を使用して xml を非同期にロードできることを発見しました。誰でもそれを見つけるのを手伝ってもらえますか。
前もって感謝します
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」というメソッドを 1 つ実装する必要があります。doInBackground は別のスレッドで実行され、そこに xml を解析するためのコードを配置します。
スレッドが終了すると、onPostExecute が呼び出されます。onPostExecute はメイン スレッドで実行されます。doInBackground の終了後に何かを実行する場合は、これを使用できます。
ParseXMLTask を使用するには、それをオブジェクトにインスタンス化する必要があります。次に、コマンドを実行し.execute()
ます。execute
私が行ったことと同様に、オブジェクトを渡すことができますparseXMLTask.execute(yourXmlString);
。好きなだけ変数を渡すことができ、 とdoInBackground
同様に処理してくださいString yourXml = params[0];
。2 番目の変数が .execute say...parseXml.execute(yourXmlString, my2ndVariable);
に渡されている場合は、doInBackground でそれを処理します。
String yourXml = params[0];
String the2ndVariable = params[1];
.execute を呼び出すと、別のスレッドで doInBackground に配置したコードを実行するように AsyncTask に指示します。