2011-10-10 67 views
1
  1. 我不使用kso​​ap2
  2. 的召喚,因爲其他方式的蜂窩不接受必須是異步的,它引發此異常http://developer.android.com/reference/android/os/NetworkOnMainThreadException.html
  3. 我從推導出碼.NET和Android與.NET有着非常不同的架構。因此當你發表評論時請注意這一事實。
  4. 在代碼塊中,我將至少調用5次或6次不同的webmethods。
  5. 代碼結構是這樣的告訴我一個辦法Web服務連接異步於Android

    public void X(){ 
        int a = webMethodA(); 
        . doSomethingWith a 
        . 
        . 
        b = webMethodB(a); 
        . 
        . doSomethingWith b 
        . 
        . 
        c = webMethod(b); 
        . 
        . 
        . 
    } 
    
  6. 我試着用的AsyncTask和處理程序使用,使之,我可以把結果值,但問題是我無法處理的X方法的結果值。我在X方法塊

+0

1)您可以使用kso​​ap2嗎?如果您需要,我有樣品。 2)你是什麼意思異步。你需要一個線程? – breceivemail

回答

0

使用返回值對於.NET數據集,這是更好地保存在你的自我設計對象的集合,可以是在web服務和Android一樣的數據。例如 在Web服務和Android中定義類Person,並將它們傳遞給它。

您可以在.Net和Android中使用json來將您的對象序列化並反序列化爲json字符串,而不是使用.Net xml。

對於線程代碼是你的答案嗎?

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) { 

    } 
} 
+0

我無法更改webmethods結構,因爲我沒有創建它們。我會嘗試用上面的代碼謝謝你。 –