1
  1. 私はksoap2を使用していません
  2. 他の方法ではハニカムが受け入れられず、この例外がスローされるため、呼び出しは非同期である必要がありますhttp://developer.android.com/reference/android/os/NetworkOnMainThreadException.html
  3. 私は .NET からコードを派生させていますが、Android のアーキテクチャは .NET とは大きく異なります。このため、コメントを残すときは、この事実に注意してください。
  4. コード ブロックでは、異なる Web メソッドを少なくとも 5 ~ 6 回呼び出します。
  5. コード構造は次のようになります

    public void X(){
        int a = webMethodA();
        . doSomethingWith a
        .
        .
        b = webMethodB(a);
        .
        . doSomethingWith b
        .
        .
        c = webMethod(b);
        .
        . 
        .
    }
    
  6. asyncTask と Handler を使用して作成しようとしましたが、結果の値を取得できましたが、X メソッドで結果の値を処理できないことが問題でした。Xメソッドブロックで戻り値を使用する必要があります

4

1 に答える 1

0

.net データセットの場合、Webservice と android で同じになる可能性がある、独自に設計したオブジェクト コレクションにデータを格納することをお勧めします。たとえば、同じWebサービスとAndroidでPersonクラスを定義して配信します。

.Net xml を使用する代わりに、.Net および Android で json を使用して、オブジェクトを json 文字列にシリアル化および逆シリアル化できます。

スレッドの場合、このコードはあなたの答えですか?

protected void btnCallWebservice_onClick() {

    final Runnable r = new Runnable()
    {
        public void run()
        {
            threadWebservice();
        }
    };

    performOnBackgroundThread(r);

}



public Thread performOnBackgroundThread(final Runnable runnable) {
    final Thread t = new Thread() {
        @Override
        public void run() {
            try {
                runnable.run();
            } finally {

            }
        }
    };
    t.start();
    return t;
}



private void threadWebservice() {
    try {
        // call your webservice here
    } catch (final Exception e) {

    }
}
于 2011-10-10T09:10:27.863 に答える