在Monodroid中異步調用Web服務時遇到問題。該調用似乎正常工作,但每當我處理響應時,應用程序都會崩潰。當我在仿真器中運行它時,程序運行方式不同,當我在手機上運行它時(Samsung Galaxy S w 2.2.1 FROYO.XWJS8)。我正在考慮自己創建線程,但不知道它是否可以解決問題。在Windows Phone 7應用程序中使用相同的代碼時可以正常工作。自定義列表適配器中的異步Web服務調用
用於異步方法調用的代碼是(注:在現實中ShowMessage調用寫Android.Util.Log.Debug):
void m_client_SearchCompleted(object sender, connectormobile.SearchCompletedEventArgs e)
{
MessageBox.GetInstance().ShowMessage("Search async completed");
SearchCache.CacheElement element = new SearchCache.CacheElement();
element.SearchCriteria = m_waitingrequest.OriginalInput;
element.PartialResponse = e.Result.PartialResponse;
if (e.Result.CompanyNameInfoArray == null)
element.Rows = new List<connectormobile.CompanyNameInfo>();
else
element.Rows = e.Result.CompanyNameInfoArray.ToList();
MessageBox.GetInstance().ShowMessage("Search async returned, partial response: " + e.Result.PartialResponse
+ " row count: " + element.Rows.Count + " return value: " + e.Result.ReturnValue.ErrorDescriptionFi);
}
這
搜索結果異步函數開始是程序行爲不同的地方。在模擬器中,代碼永遠不會到達SearchCompleted的第一行。但是在我的手機中,SearchCompleted函數似乎經歷了(至少我的所有調試行都在跟蹤中),但在此之後用戶界面凍結了。 (並在一分鐘後它說過程沒有響應)
我認爲我們需要一個完整的測試用例來進一步診斷此。你可以通過http://mono-android.net/Support提供一個完整的自包含測試應用程序的錯誤嗎?謝謝。 – jonp 2011-04-14 03:22:28