Поэтому я использую AsyncTask для выполнения вызова моей службы Windows WCF. Пока все прошло хорошо, я могу заставить его вызывать метод, который возвращает строку и отображать ее в приложении. Но при попытке использовать методы, которые возвращают bool, я получаю некоторые ошибки ..
Код
RegisterSeatTask task = new RegisterSeatTask();
task.execute(this);
protected class RegisterSeatTask extends AsyncTask<Context, Integer, String> {
protected String doInBackground(Context... arg0) {
try {
......
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(getBaseContext());
if (!LicenseHandler.RegisterSeat(licenseKey, ident,android.os.Build.DEVICE,tm.getDeviceId())) {
return "License is invalid or does not have any empty seats!";
}
......
}
protected void onPostExecute(String result) {
Toast.makeText(getBaseContext(), result, Toast.LENGTH_LONG).show();
}
}
public static boolean RegisterSeat(String License, String Identifier,
String Device, String DeviceID) {
try {
METHOD_NAME = "RegisterSeat";
SOAP_ACTION = "http://tempuri.org/IService/RegisterSeat";
SoapObject request = new SoapObject(NAMESPACE, METHOD_NAME);
request.addProperty("License", License);
request.addProperty("MyIdentifier", Identifier);
request.addProperty("Device", Device);
request.addProperty("DeviceID", DeviceID);
SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(
SoapEnvelope.VER11);
envelope.dotNet = true;
envelope.setOutputSoapObject(request);
HttpTransportSE androidHttpTransport = new HttpTransportSE(URL);
androidHttpTransport.call(SOAP_ACTION, envelope);
SoapPrimitive result = (SoapPrimitive) envelope.getResponse();
if (result.toString().toLowerCase() == "true") {
return true;
}
// to get the data
return false;
} catch (Exception e) {
return false;
}
}
Однако каждый раз, когда я запускаю метод RegisterSeat (), код останавливается и заканчивается на последней строке внутри Catch () вот так и e равно нулю .. Нет ли исключения?
Я могу видеть значение result.tostring () это либо true, либо false, поскольку wcf возвращает его. Но где-то все выходит из строя, и я не знаю, что с этим делать: / !!
