為應用添加數據持久存儲功能主要涉及到兩大處理工程:
- 將數據保存到文件系統(tǒng)
- 應用啟動時重新加載保存的數據.
保存數據時,首先將數據轉換成可保存的格式,然后將數據寫入文件;
讀取文件時,則剛好相反.首先從文件中讀取格式化的數據,然后將其解析為應用所需的內容.
什么時候保存數合適呢?
適用于移動應用的一個普遍規(guī)則是:盡可能頻繁的保存數據,尤其是用戶數據修改行為發(fā)生時.如果數據
保存過于頻繁,應注意不要拖慢應用的運行,影響到用戶的使用體驗.我們的代碼中,如果數據只要有更新,
都是重新將全部數據寫入文件中.考慮到應用的規(guī)模,數據量小的時候這樣做不會太耗時.然而,對于超頻繁
數據保存的應用,應考慮采用某種方式只保存修改過的數據,而不是每次都保存所有數據,比如說使用SQLite
等.
選擇內部存儲還是外部存儲
所有的Android設備都將文件存儲區(qū)域分為兩部分:內部存儲和外部存儲。這種命名來源于早期的Android系統(tǒng),當時大部分的設備都有一個內置的不可變的內存(內部存儲),另外還有一個可移除的存儲介質,如SD卡(外部存儲),后來即使設備沒有可移除的存儲介質了,依然習慣性地將永久存儲空間劃分為“內部”和“外部”,并且無論外部存儲是否可以移除,這兩部分存儲空間的API行為都是一樣的。
內部存儲
1.總是可用的
2.內部存儲空間內的文件默認只有你的App可以訪問
3.當用戶卸載了你的App,系統(tǒng)從內部存儲空間中移除所有你的App相關的文件
當你希望用戶和其他App都不能訪問你的文件時,內部存儲是最好的選擇。
外部存儲
1.并非總是可用的,因為用戶可能將外部存儲作為USB存儲,某些情況下甚至會從設備上移除外部存儲
2.它是大家都可以訪問的,存儲在這里的文件可以被其他應用程序訪問
3.當用戶卸載了你的App,系統(tǒng)僅僅會移除存儲在通過 getExternalFilesDir()獲取到的路徑中的該App相關的文件
當你的文件不需要訪問限制,或者你想將文件分享給其他的App,或者允許用戶通過電腦來訪問它,那么外部存儲是最好的選擇。。