SharedPreferences 介紹
透過紀錄與未來的自己對話 |
偏好設定 (SharedPreferences),簡單的儲存資料透過 .xml 檔的格式,並且可以重複讀取,不會因為程式關閉後資料就消失,儲存在 data/data/applicationId 的目錄下,可透過程式碼讀取或開啟 .xml 檔來做查看.
顯示 .xml 格式 |
Tip : 如何把 code 拉出來,單獨做成一個 function
1. 全選整段code
Ctrl + Alt + m |
2. 編輯視窗 Extract Method
如何透過程式碼讀取儲存結果?
1. 透過 KEY 取得
Log 印出資料 |
結果 |
Log 印出結果 |
為什麼 getSharePreferences() 要使用 MODE_PRIVATE ?
網路上比較舊的文章,會顯示 mode 可以設定的模式有 4 個 分別為 :
MODE_PRIVATE,
MODE_WORLD_READABLE,
MODE_WORLD_WRITEABLE,
MODE_MULTE_PROCESS
READABLE, WRITEABLE 介紹 deprecated in API level 17
MODE_MULTI_PROCESS deprecated in API level 23
如何刪除, 修改儲存的內容?
Warning : APP 移除,檔案會消失.重新安裝 APP 後不會把檔案讀取回來.
1. 移除整個 PREFS_FILE 資料
執行後,讀取資料皆顯示 def Value |
2. 移除單一個 KEY 中的資料
填入想要移除的 KEY NAME |
SCREEN SIZE, WEIGHT 值被清除 |
3. 修改儲存內容,把值重新填入
如何查看 SharedPreferences 檔案?
開啟 APP 後,打開 Device File Explorer,並開啟 data/data 路徑資料夾 |
選擇 applicationId 名稱 -> shared_prefs -> 儲存的檔案,如果有 多個檔案會顯示在列表中 |
可以直接查看儲存的檔案 |
如何監聽資料變化?
沒有使用時要解除註冊 |
最後一個很重要的問題?
以上的 code 處理方式並不是很恰當,如果在 10 個地方都有使用到 SharedPreferences,那麼就 new 出了 10 個 SharedPreferences 實體出來,這個寫法並不聰明.可以寫一個 singleton 並在 APP Application 初始化,在需要使用時透過 getInstance 來取得.這個部分網路上有很多檔案可以搜尋到.
END
後記:如果這篇文章對你有幫助,可以幫忙分享給更多人知道.文章內容有誤,也可以在下方留言通知我.另外可以訂閱這個 Blogger,如果有 Andoird 技術相關的文章就可以立刻收到通知.
留言
張貼留言