2011-02-23 27 views
1

我有想法抵擋了我目前的應用程序。 我有兩個選項卡此TabHost類。 Tab1顯示來自Listview中WS的數據。表2顯示了與webview中圖表相同的數據。androids putExtra

當然,我寧願不要爲相同的數據調用同一個webservice兩次,所以我正在考慮在TabHost類中執行WS調用,然後使用putExtra將這些數據作爲JSONArray發送到我的選項卡。

這是可能的還是簡單的愚蠢? Regards

+0

聽起來對我來說很合理。試一試!爲什麼不? – MatrixFrog 2011-02-23 08:09:44

+0

謝謝,我認爲是合理的:) 我會給它一個鏡頭,我不確定可以通過putExtra發送什麼,以及多少.. – elwis 2011-02-23 08:21:58

回答

2

看看這個video,談論製作WebService調用和RESTful客戶端。

作爲一般原則,從Activity或主UI線程進行WS調用是一個壞主意。當網絡速度較慢或Web服務需要時間響應時,很有可能獲得ANR(應用程序無響應)。

JSON用於進行WebService調用,並且使用應限制爲該層。雖然沒有什麼能阻止你使用JSON傳遞數據,但我認爲它是一種反模式或黑客行爲。

建議這樣做的方法。

  1. 將您的webservice放入一個IntentService類(這將確保UI線程不會阻止)。

  2. 將響應轉換爲Parcelable對象並通過意向將其發送回活動。

  3. 您可以在intent.putExtra中使用此Parcelable對象來傳遞它。

雖然這聽起來像很多工作,但它更清潔,以後會爲您節省很多痛苦。另外,關於IntentService和Parcelable的文檔有點簡單,所以你必須在StackOverflow上進行一些搜索才能正確使用它。