2011-06-26 153 views
0

我的Android應用程序只下載第一份午餐的數據。該數據是~50 MB與〜2500文件。
1.如果文件是在SharedSettings中下載的,是否存儲是一個好主意?問題是,如果用戶清除數據應用程序(可能是錯誤的),他必須重新下載所有內容。我手動複製預先裝好的數據庫/data/data/../databases/,它是一個好主意,檢查是否存在數據庫,如果沒有那麼下載的一切?:檢查文件夾和所有數據是否已經存在

if(new File(/data/data/../databases/myDB.db).exists){//dont download} 

2.Is得到文件夾的大小,並檢查它是否是一個很好的方式來查看文件夾+數據是否好?還是有更好的方法來檢查2個文件夾是否相同?
謝謝。

回答

1

不,請勿將50MB的數據放入SharedSettings。這將會倒下並死亡。一組SharedSettings以XML形式存儲在磁盤上,並在打開時全部加載到RAM中。這也不會阻止用戶清除這些數據。

爲了確定數據是否已被下載,我建議您在下載完成後創建一個文件,表明它已完成。用戶不能有選擇地刪除文件。他們可以清除你的數據,但是這也會清除標記文件,你會知道你需要重新下載。 (同時請記住,你將需要處理的重新啓動,如果它在中間被中斷下載。)

還要確保你正確地處理文件系統操作如下所述:http://android-developers.blogspot.com/2010/12/saving-data-safely.html

+0

相當肯定,他說,他被存儲-if-文件是在sharedprefs下載,就像一個布爾旗。不是實際的數據。這將是一個體面的解決方案。如果用戶清除了應用程序數據,那麼您可能想重申他們沒有清除其他任何內容,即時通訊。 – Eric

+0

是啊哈哈我的意思是存儲一個布爾值(如埃裏克說)..謝謝你的回答 – Omar

0

另一種想法,如果你」重新擔心丟失的數據文件...如果您的應用在任何時候查找文件並且它不存在,請拋出異常,將其傳遞給顯示對話框並「驗證」數據的處理程序。您可以保留所有需要的數據文件的列表,然後只下載不存在的數據文件。就像系統檢查一樣,如果你願意的話。

這樣,他們最終不會下載50MB,如果他們唯一缺少的,他們在探險家根;-)意外刪除一些文件

+0

不錯的建議,謝謝你的答案。 – Omar