在 iOS 開發中,我們可以通過 UserDefaults 將一些簡單的內容存在沙盒之中,而 Android 是通過一個叫做 SharedPreferences 來實現的。
- 提供一個輸入框,用來存儲文字內容。
- 當按下 Save 的時候,通過 SharedPreferences 將 user_login 存起來。
- 點下 Next 會跳到下一頁。
- 點下 Show name 會讀取 SharedPreferences 中的 user_login 內容,並顯示在畫面上。
SharedPreferences
1 |
val preference = PreferenceManager.getDefaultSharedPreferences(this) |
默認會存到這個路徑
1 |
/data/data/com.package.name/shared_prefs/com.package.name_preferences.xml |
也可以自定義名稱來存內容:
1 2 3 |
val profilePreferences = getSharedPreferences("profile", Context.MODE_PRIVATE) val profileEditor = profilePreferences.edit() profileEditor.putString(name, "login_name") |
Context.MODE
- Context.MODE_PRIVATE – 代表該檔案為似有檔案,只能被 App 本身存取。
- Context.MODE_APPEND – 會檢查檔案是否存在,檔案存在會將新的內容新增到檔案內,否則建立新檔案。
- Context.MODE_WORLD_READABLE – 其他 App 也可以讀取。
- Context.MODE_WORLD_WRITEABLE – 其他 App 也可以寫入。
筆記
- 研究 – 試試看做兩個 App 互相讀寫 SharedPreferences.
參考
- 官方文件 – Shared Preferences
- 可以到 Github 上看對應的 Source Code