2011-04-04 73 views
1

我有一個具有多個spinners的活動。兩個spinners值/數據需要通過RESTful服務從Web上檢索到的數據填充。數據採用JSON格式,非常基本。在一個Activity中請求多個RESTful調用的最佳方法是什麼

我曾考慮過使用AsyncTask和doInBackground做兩個Web服務調用,它們會填充兩個不同的HashMaps,但我不確定這是關於性能設計的最佳方法。

是否有另一種方法來處理這種情況?也許有一種服務在應用程序啓動並在本地緩存時獲取數據?

您的意見,將不勝感激。

回答

4

您可能希望使用兩個不同的AsyncTask實例,以便請求並行運行。

如果您的數據應該被保存,您可以考慮將其保存到sqlite數據庫或存儲在SharedPreferences中的json String。使用Service聽起來也不錯。

+0

如果使用兩個的AsyncTask的其中onPostExecute我應該推出我的新活動,因爲沒有保證第一個任務將在第二前完成? – Byron 2011-04-04 03:51:29

+0

您可能需要跟蹤他們每人完成的時間,以便在他們都完成時執行操作。 – 2011-04-04 04:06:29

0

此外,如果您只是想在當前正在運行的程序的本地緩存它(並且不需要擔心在程序關閉時保留它),則可以創建一個簡單的全局單例緩存,以允許同步訪問到你的數據。

就實際獲取數據本身而言,AsyncTask可能是最好的方法(如果它尚未被緩存)。在doInBackground()方法中執行提取並在onPostExecute()方法中執行解析/存儲。

相關問題