2012-04-07 20 views
1

私はAndroid2.2からWebサービスにアクセスしました。これは完全にOKです。Android 4.0.3で自分のプログラムを変更して、同じWebサービスにアクセスしました。しかし、これは動作しません。 私のAndroidプログラムのコードAndroidウェブサービスへのアクセス

import org.ksoap2.SoapEnvelope; 
import org.ksoap2.serialization.SoapObject; 
import org.ksoap2.serialization.SoapPrimitive; 
import org.ksoap2.serialization.SoapSerializationEnvelope; 
import org.ksoap2.transport.HttpTransportSE; 

import android.widget.TextView; 
import android.app.Activity; 
import android.os.Bundle; 

public class AndroidWSClientActivity extends Activity { 

private static final String SOAP_ACTION = "http://ws.android4.com/"; 
private static final String METHOD_NAME = "sayHello"; 
private static final String NAMESPACE = "http://ws.android4.com/sayHello/"; 
private static final String URL = "http://175.157.45.91:8085/ForAndroid4/services/TestWs?wsdl"; 
/** Called when the activity is first created. */ 
@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.main); 


    Thread networkThread = new Thread() { 
    @Override 
    public void run() { 
     try { 
     SoapObject request = new SoapObject(NAMESPACE, METHOD_NAME);   
     SoapSerializationEnvelope envelope = new SoapSerializationEnvelope(SoapEnvelope.VER11); 
     envelope.setOutputSoapObject(request); 

     HttpTransportSE ht = new HttpTransportSE(URL); 
     ht.call(SOAP_ACTION, envelope); 
     final SoapPrimitive response = (SoapPrimitive)envelope.getResponse(); 
     final String str = response.toString(); 

     runOnUiThread (new Runnable(){ 

      public void run() { 
       TextView result; 
       result = (TextView)findViewById(R.id.textView1); 
       result.setText(str); 
       } 
      } 

      } 

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

私はインターネットの許可も追加しました。 このプログラムはエミュレータに正しくインストールされています。しかし結果は示されていません。何もエラーが表示されません.Eclipseは "networkThread"は使用されていないと言います。これをどうすれば修正できますか?

ありがとうございます!

答えて

1

networkThreadを起動したことがないようです。あなたが)あなたのonCreate(の一番最後にこれを必要になります。

networkThread.start(); 

言われていること、あなたは事のこのタイプを行うにはAsyncTaskを使用するとよいでしょう。私はあなたがそれを掛けてしまえば、あなたはそれをもっと簡単に見つけるだろうと思う。

http://developer.android.com/reference/android/os/AsyncTask.html

+0

Thanx!それは私の問題を解決しました.. – Grant

+0

うれしい私は助けることができます。 :) –

関連する問題