0

の次のonPostExecuteコードがありAsyncTaskます。そのままで問題なく動きます。ただし、コメント付きのコードを削除すると、onPostExecuteイベントを受け取りません (No Toast)。

@Override
protected void onPostExecute(String result) {
      internetData = result;        
      tempview.append(result + "\n");
      Toast.makeText(getApplicationContext(), internetData.toString(), 1).show();
      //setServiceId();
}

setServiceIdイベントと後続のイベントは (URL は意図的に削除されています)、is GetXMLDatamyAsyncTaskです。

public void setServiceId() {
    if (internetData != null) {
        try {
            XmlPullParserFactory factory = XmlPullParserFactory.newInstance();
            factory.setNamespaceAware(true);
            XmlPullParser xpp = factory.newPullParser();

            xpp.setInput(new StringReader(internetData));
            int eventType = xpp.getEventType();
            while (eventType != XmlPullParser.END_DOCUMENT) {
                if (eventType == XmlPullParser.TEXT) {
                    serviceId = xpp.getText();
                    serviceHistory = "www.google.com/" + serviceId + "/history";
                    serviceUsage = "www.google.com/" + serviceId + "/usage";
                    serviceDetails = "www.google.com/" + serviceId + "/service";
                    Toast.makeText(getApplicationContext(), serviceId, 1).show();
                }
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
    updateHistory();
    updateDetails();
    updateUsage();
}

public void updateHistory() { //Never called
    new GetXMLData().execute(serviceHistory);
    Toast.makeText(getApplicationContext(), "Update History", 1).show();
}

public void updateUsage() { //Never called
    new GetXMLData().execute(serviceUsage);
    Toast.makeText(getApplicationContext(), "Update Usage", 1).show();
}

public void updateDetails() { //Never called
    new GetXMLData().execute(serviceDetails);
    Toast.makeText(getApplicationContext(), "Update Details", 1).show();
}

    public void updateData() { //First call
    new GetXMLData().execute(serviceListing);
    Toast.makeText(getApplicationContext(), "Update Data", 1).show();
}

上記の最後のイベントupdateDataが呼び出され、イベントがコメントアウトされていないToast場合、決して消えないようです。setServiceIdこれと同様に、XML データは取得されません。

コメントアウトすると、イベントの XML データを受け取りますupdateData()が、後続のイベントはなく、Toastfromも取得できませんonPostExecute。なぜこれが起こっているのかについての提案はありますか?

4

1 に答える 1