1

最初の画面に表示する必要のあるデータを取得するためにWebサービスを呼び出したい。私が使用したOnCreate()、それはいくつかの例外をスローします。メソッドでWebサービスを呼び出すOnCreate()方法は?

4

2 に答える 2

1

したがって、次のように使用するよりも、OnCreate() から Web サービスを呼び出したいとします。

String NAMESPACE = "Target Name Sapce/";
String URL = "URL generated in WSDL";
String SOAP_ACTION = "Name Sapce/Method name";
String METHOD_NAME = "Method Name";

//Initialize soap request + add parameters
SoapObject request = new SoapObject(NAMESPACE, METHOD_NAME);       

//Use this to add parameters
request.addProperty("Parameter1",Parameter1);
request.addProperty("Parameter2",Parameter2);

//Declare the version of the SOAP request
SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11);
envelope.setOutputSoapObject(request);

HttpTransportSE androidHttpTransport = new HttpTransportSE(URL);
try {              
    androidHttpTransport.debug = true;
    //this is the actual part that will call the  
    androidHttpTransport.call(SOAP_ACTION, envelope);
    // Get the SoapResult from the envelope body.
    SoapObject result = (SoapObject)envelope.bodyIn;
    String validate = result.getProperty(0).toString();

    //Get the first property and change the label text
    Toast.makeText(getApplicationContext(), "Connected "+result.getProperty(0).toString(),Toast.LENGTH_LONG).show();

} catch (Exception e) {
      e.printStackTrace();
}

これにより、エラーなしで OnCreate() から Web サービスを呼び出すことができます。

于 2013-01-03T09:12:42.023 に答える
0

であるかどうかにかかわらず、 UIスレッドonCreate()内でネットワークを作成しないでください。Webからデータをフェッチする場合は、このコールバックベースのライブラリを使用できます。オーバーライドして「お待ちください...」のものを表示し、オーバーライドして、(必要に応じて)実行を続行します。onStart()onSuccess()onFailure()onFinish()

于 2013-01-03T08:50:32.630 に答える