Android SharedPreferences 存储 key / value 数据

发布时间: 2023-02-22 16:51:42 作者: 大象笔记

Android App 中想实现保存默认的蓝牙设备 Mac 地址,本质上就是一个 key / value 键值对的存储及读取过程。

可以使用 SharedPreferences 来实现。

SharedPreferences 指向了一个存储键值对的 XML 文件,并提供了读写接口。

共享级别

异步/同步写入

数据何时消失

code

fragment 中:

SharedPreferences pref = getActivity().getSharedPreferences(getPackageName() + "_ble", Context.MODE_PRIVATE);
SharedPreferences.Editor editor = pref.edit();
editor.putString("key_name1", "string value");
editor.putInt("key_name2", 100);
editor.apply();

pref.getString("key_name1", "default value");

对于 activity 和 service 来说,可以直接调用 getSharedPreferences。因为这两个都是继承自 Context。

查看真机数据

Android Studio 界面右下角有个 Device File Explorer, 点开之后,找到 /data/data/你的APP包名/shared_prefs/指定的文件名.xml

里面存储的就是 key / value 数据。例如:

<?xml version='1.0' encoding='utf-8' standalone='yes' ?>
<map>
    <string name="default_device">string value</string>
</map>

存储对象的序列化数据

有时需要将 object 直接缓存:

参考 https://stackoverflow.com/questions/7145606/how-do-you-save-store-objects-in-sharedpreferences-on-android

使用 gson 这个库,将对象序列化,然后存储。

参考

我是一名山东烟台的开发者,联系作者