假設您撰寫的 APP 要記錄前一次的使用記錄,並保留該記錄,讓下次 APP 開啟時能讀取前次資料以接續工作,這時 SharedPreferences 就會是您首選的 API,它是一個強大且可靠(一致性)的資料存放方式,因此比起其他方法來說相對消耗效能,使用過多的 SharedPreferences 可能會導致 APP 運作變得緩慢,這是特別要注意的地方。此次一樣使用 Android Studio 這個開發者工具。
▲ 在我自製的 QR Code 掃描器 APP 中,前一次的掃描記錄會使用 SharedPreferences API 存起來,關閉 APP 後記錄仍然存著,下次開啟 APP 時還可以看到上次的掃描結果,當然也能透過選單清除記錄,基本上這就是其用途之一,大家可以想想更多的創意用法唷!
⌨️ SharedPreferences API 之「寫入」
SharedPreferences record = getSharedPreferences("record", MODE_PRIVATE);
record.edit()
.putString("Field", "我要存的文字")
.apply();
第一行 getSharedPreferences 的「record」是寫入「record」檔案中,並採用 MODE_PRIVATE 模式儲存,該模式只限定這個 APP 可以存取該檔案的資料,現在幾乎都只有用這個模式;第三行前面是欄位名稱,後面是該欄位的值;第四行 apply() 提交,還有 commit() 可以使用,後者會將其選項同步寫入持永久性儲存空間內,不過若要快速建議用前者。
⌨️ SharedPreferences API 之「讀取」
String getRecord = getSharedPreferences("record", MODE_PRIVATE)
.getString("Field", "沒讀到資料就會顯示這段文字");
第一行就是先建立一個 String 的變數「getRecord」來接來自 SharedPreferences 的資料,我們會從「record」檔案中讀出「Field」欄位中的字串資料,若無資料則顯示「沒讀到資料就會顯示這段文字」。
以上的「寫入」與「讀取」為最常用的,如果要學習更多請參考官方文檔,不只能儲存 String,其他的基本型態也都能儲存。
留言區 / Comments
萌芽論壇