存儲和加載本地數(shù)據(jù)

為應(yīng)用添加數(shù)據(jù)持久存儲功能主要涉及到兩大處理工程:

  1. 將數(shù)據(jù)保存到文件系統(tǒng)
  2. 應(yīng)用啟動時重新加載保存的數(shù)據(jù).

保存數(shù)據(jù)時,首先將數(shù)據(jù)轉(zhuǎn)換成可保存的格式,然后將數(shù)據(jù)寫入文件;
讀取文件時,則剛好相反.首先從文件中讀取格式化的數(shù)據(jù),然后將其解析為應(yīng)用所需的內(nèi)容.

什么時候保存數(shù)合適呢?

適用于移動應(yīng)用的一個普遍規(guī)則是:盡可能頻繁的保存數(shù)據(jù),尤其是用戶數(shù)據(jù)修改行為發(fā)生時.如果數(shù)據(jù)
保存過于頻繁,應(yīng)注意不要拖慢應(yīng)用的運行,影響到用戶的使用體驗.我們的代碼中,如果數(shù)據(jù)只要有更新,
都是重新將全部數(shù)據(jù)寫入文件中.考慮到應(yīng)用的規(guī)模,數(shù)據(jù)量小的時候這樣做不會太耗時.然而,對于超頻繁
數(shù)據(jù)保存的應(yīng)用,應(yīng)考慮采用某種方式只保存修改過的數(shù)據(jù),而不是每次都保存所有數(shù)據(jù),比如說使用SQLite
等.

選擇內(nèi)部存儲還是外部存儲

所有的Android設(shè)備都將文件存儲區(qū)域分為兩部分:內(nèi)部存儲和外部存儲。這種命名來源于早期的Android系統(tǒng),當時大部分的設(shè)備都有一個內(nèi)置的不可變的內(nèi)存(內(nèi)部存儲),另外還有一個可移除的存儲介質(zhì),如SD卡(外部存儲),后來即使設(shè)備沒有可移除的存儲介質(zhì)了,依然習(xí)慣性地將永久存儲空間劃分為“內(nèi)部”和“外部”,并且無論外部存儲是否可以移除,這兩部分存儲空間的API行為都是一樣的。

內(nèi)部存儲

1.總是可用的
2.內(nèi)部存儲空間內(nèi)的文件默認只有你的App可以訪問
3.當用戶卸載了你的App,系統(tǒng)從內(nèi)部存儲空間中移除所有你的App相關(guān)的文件
當你希望用戶和其他App都不能訪問你的文件時,內(nèi)部存儲是最好的選擇。

外部存儲

1.并非總是可用的,因為用戶可能將外部存儲作為USB存儲,某些情況下甚至?xí)脑O(shè)備上移除外部存儲
2.它是大家都可以訪問的,存儲在這里的文件可以被其他應(yīng)用程序訪問
3.當用戶卸載了你的App,系統(tǒng)僅僅會移除存儲在通過 getExternalFilesDir()獲取到的路徑中的該App相關(guān)的文件
當你的文件不需要訪問限制,或者你想將文件分享給其他的App,或者允許用戶通過電腦來訪問它,那么外部存儲是最好的選擇。。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容