I am using the following code which i found on internet to call a web service from my android app:
public class WebServiceActivity extends Activity {
private static final String SOAP_ACTION = "http://tempuri.org/HelloWorld";
private static final String METHOD_NAME = "HelloWorld";
private static final String NAMESPACE = "http://tempuri.org/";
private static final String URL = "http://192.168.1.19/TestWeb/WebService.asmx";
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Button getquote = (Button) findViewById(R.id.getquote);
getquote.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
TextView result1;
result1=(TextView)findViewById(R.id.result1);
try {
SoapObject request = new SoapObject(NAMESPACE, METHOD_NAME);
EditText CompanyName = (EditText) findViewById(R.id.CompanyName);
String val1 = (CompanyName.getText().toString());
request.addProperty("passonString", val1);
SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
envelope.dotNet=true;
envelope.setOutputSoapObject(request);
HttpTransportSE androidHttpTransport = new HttpTransportSE(URL);
androidHttpTransport.call(SOAP_ACTION, envelope);
Object result = (Object)envelope.getResponse();
result1.setText(result.toString());
} catch (Exception e) {
result1.setText(e.getMessage());
}
}
});
}
}
I am getting error that application is not responding.I am new in the field , please help.
Thanks in advance
Put your web service request as a background task. Usually time taken by a network activity is unpredictable. If you use above, the UI Thread will block. That is why it says “Application not responding”.
I found this great article.
http://www.vogella.de/articles/AndroidPerformance/article.html#concurrency
Have a look at 2. Background Processing
Your example can be modified as following.