Question

Tried using Async but got can't handler even there is no toast in it, also tried call calling method runUIThread but no luck ,

Async method works but it also gets run time exception

when i use Async method data gets on the Textview too late (5-10 mins) , but when i use it in debuggers it gets instantly ,

below webservice is test using wizdl application and response is instant

i'm confused please help

private final String NAMESPACE = "http://????????.com/EventGetter/";

private final String URL = "http://?????????.com/EventGetter.asmx";

private final String SOAP_ACTION = "http://????????.com/EventGetter/GetTimeTable";

private final String METHOD_NAME = "GetTimeTable"; 

private class TPaccessData extends AsyncTask<String, Void, Void>{

    @Override
    protected Void doInBackground(String... params) {
        GetData();
        return null;
    }
    @Override
    protected void onPostExecute(Void result) {

        Log.i(LogStr, "onPostExecute");
    }

    @Override
    protected void onPreExecute() {
        GetData();
        Log.i(LogStr, "onPreExecute");

    }

    @Override
    protected void onProgressUpdate(Void... values) {
        Log.i(LogStr, "onProgressUpdate");
    }
}

public void GetData(){
    //Create request
    SoapObject request = new SoapObject(NAMESPACE, METHOD_NAME);
    //set properties aka param
    request.addProperty("stream","where ttBatch = 'F.Y.J.C'");
    //Create envelope
    SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(
            SoapEnvelope.VER11);
    envelope.dotNet = true;
    //Set output SOAP object
    envelope.setOutputSoapObject(request);
    //Create HTTP call object
    HttpTransportSE androidHttpTransport = new HttpTransportSE(URL);
    try {
        androidHttpTransport.debug = true;
        //Invole web service
        androidHttpTransport.call(SOAP_ACTION, envelope);
        //Get the response
        SoapPrimitive response = (SoapPrimitive) envelope.getResponse();
        //Assign it to Text static variable
        text.setText(response.toString());
    } catch (Exception e) {
        e.printStackTrace();
    }
}

also tried calling get data in oncreate method

 NotifyList.this.runOnUiThread(new Runnable() {
        @Override
        public void run() {
            GetData();
          //  TPaccessData task = new TPaccessData();
          //   task.execute();
        }
    });
Was it helpful?

Solution

Remove youe GetData() method from onPreExecute() and call this line inside onPost

text.setText(response.toString());
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top