2010-11-12 110 views
0

實際上,我從Web中獲取XML,解析並將其顯示在屏幕上。我得到的問題是,每次調用活動時活動都會嘗試從Web上加載數據(實際上,我的移動應用程序需要頻繁訪問服務器)因此,我在尋找以下解決方案:在重新啓動活動時快速加載數據

On Re-launch of an activity, the data from web should not be loaded again. 
creating a class that i can use to transparently make application faster by 
selectively caching items in memory. And thus, making users very happy and 
This class can even apply individual refresh times to each cached item. 

所以,我想我需要將數據存儲在緩存或類似的東西。

是否有任何方式/技術來實現這樣的事情?因此無需每次都重新啓動活動。

回答

1

不知道該建議的性能如何,但是如果您只是想避免每次重新啓動活動時獲取XML文件,最簡單的方法就是將它們保存到Internal Storage。當您的活動(重新)啓動時,您將開始檢查文件是否存在本地,然後再從網上獲取它們。

你當然需要找出一種邏輯來判斷一個XML文件是否「過時」(你可能有一個簡單的數據庫表,其中包含文件名和最後提取的日期),你可能也想有一些清理邏輯來刪除文件,當你不再需要它們時,它們不會填充不必要的空間。

+0

thanx的支持,它也是一個好主意 – 2010-11-15 06:30:06

1

您可以嘗試使用Service以給定間隔在後臺加載數據。

+0

ya它可以使用服務來完成,但是在重新啓動一個活動時,它不應該從Web上獲取數據(應該從緩存中加載數據或類似的東西,我認爲這樣做,數據加載速度增加,因此用戶不需要等待更多) – 2010-11-12 06:36:39

+0

如下面的註釋中所述,活動應該向服務請求數據,然後服務將返回緩存中的數據。如果緩存爲空,則服務首先加載緩存並且該活動將不得不等待。下一次活動開始時,活動會直接獲取數據,因爲數據會被服務緩存。 – Christian 2010-11-12 07:16:09

+0

這也是更好的主意,但我需要從網絡獲取大數據和thanx的支持 – 2010-11-13 09:13:04

1

那麼我會做的是做一個表,讓我們說它稱爲「Table_Web_XML」,並在其中適當的領域,以存儲特定的Web數據。

當開始活動時,我將首先檢查數據庫中是否有數據。如果表格爲空(意味着第一次加載Activity),我會從網頁加載並顯示在屏幕上並保存在數據庫中。另一方面,如果表中有數據,那麼我會將它加載到屏幕上,並在後臺啓動一個服務,如果Web上有任何更改,它將更新我的數據庫表。這樣做的目的是從系統響應的角度來看,當活動重複打開時,數據將始終快速加載,後臺服務將確保後續請求中有新內容。希望能幫助到你。

+0

你可以做,但有許多XML文件,所以每個XML,我應該爲每個創建表? – 2010-11-12 07:03:15

+0

如果您的目的是快速加載您的應用程序,請確保您可以在單個數據庫中創建更多表。這裏的折衷是爲每張桌子在幾千字節的磁盤空間上妥協。 – 2010-11-12 08:00:44

+0

thanx的支持,但我該怎麼做?如果你有任何示例/代碼,那麼請給我建議或給我一個方法! – 2010-11-12 12:14:44

相關問題