Androd SharedPreferences 存取key-value键值对的用法小结

简介: 本文简单介绍 Androd SharedPreferences的持久化存储的简单用法,作为一个小结。

在开发一个简单Launcher,点击APP按钮后,如无APP绑定,则弹出一个APP选择列表,选择后进行绑定,其中对用户所设定的APP,及可使用SharedPreferences 进行持久化存储。

本文简单介绍 Androd SharedPreferences的持久化存储的简单用法,作为一个小结。

在这里插入图片描述

一、存储数据

p = mContext.getSharedPreferences("xml_data_file_name", Context.MODE_PRIVATE);
SharedPreferences.Editor editor = p.edit();
editor.putBoolean("app_icon_setup", true);
editor.putString("app_0_name", mAppInfo.activityInfo.packageName);
editor.apply();

二、读取数据

 p = mContext.getSharedPreferences("xml_data_file_name", Context.MODE_PRIVATE);
 p.getString("app_0_name", null);//读取一个String数据,若不存在,则默认为null
 p.getBoolean("app_icon_setup", false);//读取一个Boolean数据,若不存在,则默认为false

三、删除数据

在Android中,使用SharedPreferences删除数据,你可以通过SharedPreferences.Editor的remove()方法来删除指定的键对应的数据。如果你想删除所有数据,可以调用clear()方法。

3.1 删除指定KEY的数据


p = mContext.getSharedPreferences("xml_data_file_name", Context.MODE_PRIVATE);
SharedPreferences.Editor editor = p.edit();
editor.remove(mKey);
editor.apply();
editor.apply();

3.2 删除所有数据


p = mContext.getSharedPreferences("xml_data_file_name", Context.MODE_PRIVATE);
SharedPreferences.Editor editor = p.edit();
editor.clear();// 或者删除所有数据
editor.apply();

四、测试

4.1 查找数据文件

  • 这几个文件的数据是一样的,一起变化的,但又不是软连接文件。
130|console:/ # find . -name  *xml_data_file_name*
./data_mirror/data_ce/null/0/com.sz.xlauncher/shared_prefs/xml_data_file_name.xml
./data/data/com.sz.xlauncher/shared_prefs/xml_data_file_name.xml
./data/user/0/com.sz.xlauncher/shared_prefs/xml_data_file_name.xml

4.2 查看数据的存储

  • 操作UI写、读、删除
  • 选楼上任一xml,查看数据的变化
  • 如下存储了3个数据,分别是key=app_icon_setup, key=app_0_name, key=app_1_name
130|console:/ # 
130|console:/ # 
/data/com.sz.xlauncher/shared_prefs/DATA.xml                         <
<?xml version='1.0' encoding='utf-8' standalone='yes' ?>
<map>
    <boolean name="app_icon_setup" value="true" />
    <string name="app_0_name">com.android.contacts</string>
    <string name="app_1_name">com.android.calculator2</string>
</map>
相关文章
|
6月前
|
JavaScript Python
7-4|execjs._exceptions.ProgramError: Error: Cannot find module 'jsdom'
7-4|execjs._exceptions.ProgramError: Error: Cannot find module 'jsdom'
|
10月前
|
JSON JavaScript 前端开发
Mr_HJ / form-generator项目文档学习与记录
Mr_HJ / form-generator项目文档学习与记录
183 0
|
6月前
|
安全 Android开发 Kotlin
Android中LiveEventBus收不到消息?不妨试试本地广播
本文介绍在Android应用内使用本地广播(LocalBroadcast)进行组件间通信的方法,解决了Activity在onStop状态时接收不到消息的问题。本地广播比全局广播更安全高效,适用于同一应用内的通信。文章详细介绍了设置广播接收器、发送广播及注意事项,并提供了Kotlin代码示例。
116 3
|
8月前
|
小程序 数据库
【微信小程序-原生开发】实用教程10 - 动态的新增、修改、删除(含微信云数据库的新增、修改、删除,表单弹窗、确认弹窗、日期选择器、单行输入框、多行输入框、滑动组件的使用)
【微信小程序-原生开发】实用教程10 - 动态的新增、修改、删除(含微信云数据库的新增、修改、删除,表单弹窗、确认弹窗、日期选择器、单行输入框、多行输入框、滑动组件的使用)
298 0
|
10月前
|
Android开发 对象存储
OSS对象储存android开发进行下载到本地文件时异步操作失效
android vivo80使用官方示例代码进行文件下载,但是使用oss.asyncGetObject(get, new OSSCompletedCallback<GetObjectRequest, GetObjectResult>()时onSuccess和onFailure不执行
|
对象存储
阿里云OSS如何通过Bucket Policy限制IP访问?
在使用OSS的时候,我们可能会遇到这种情况:公司内部的机密文件仅允许员工在企业内部访问。但是由于员工太多,单独针对每个账号设置权限,工作量太大大。此时我们可以通过Bucket Policy添加允许IP的条件进行限制。
6664 0
|
小程序
微信小程序 - 自定义组件支持外部class或者style样式 (Component - externalClasses)
微信小程序 - 自定义组件支持外部class或者style样式 (Component - externalClasses)
991 0
微信小程序 - 自定义组件支持外部class或者style样式 (Component - externalClasses)
|
SQL 关系型数据库 MySQL
django(五)连接mysql
我正在参加「掘金·启航计划」 Django 默认支持的数据库是sqlite,但是正常我们使用的是mysql,因此我们需要修改一下他的默认配置。 首先,放一下我们的项目根目录结构:
240 0
|
负载均衡 Dubbo 算法
Go 语言体系下的微服务框架选型: Dubbo-go
本文介绍了 Go 微服务体系发展与选型,过去一年 Dubbo-go 社区的飞速发展以及对未来的展望。
9040 1