Android数据存储访问——SharedPreferences简单存储

本文详细介绍了Android中SharedPreferences的使用方法,包括其基本概念、访问模式、数据读写操作以及跨应用访问等高级特性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

涉及到需要为一些显示设置一个配置文件 在网上看了些资料 看了下书 SharedPreferences类似于一个.ini文件 可以完成相应的功能 对此进行了整理 主要参考了某PPT

 

Android数据存储和访问方式

SharedPreferences File SQLite ContentProvider

 

SharedPreferences是一种轻量级的数据保存方式 采用键值对NVP保存在文件系统中

可用于保存数据以及实现不同应用程序间的数据共享

支持3种访问模式

MODE_PRIVATE 私有

MODE_WORLD_READABLE 全局读

MODE_WORLD_WRITEABLE 全局写

定义访问模式

 

public static int MODE = MODE_PRIVATE;
  

或是含2种方式

public static int MODE = Context.MODE_WORLD_READALBE + Context.MODE_WORLD_WRITEABLE;
 

定义SharedPreferences名称,与Android系统中保存的文件同名

 

public static final String PREFERECE_NAME="SaveSetting";
 

为了可以使用,需要将访问模式名称作为参数残敌,获取到SharedPreferences对象

SharedPreferences sharedPreferences = getSharedPreferences(PREFERENCE_NAME,MODE);
 

 

通过SharedPreferences.EdiorSharedPreferences修改,最后调用Commit()函数保存修改内容

SharedPreferences.Editor editor=sharedPreferences.edit();
editor.putString("Name","Tom");
editor.putInt("Age",20);
editor.putFloat("Height",);
editor.commit();
 

 

通过调用getSaredPerences()函数,并在第一个参数中指明访问的名称,通过get<Type>()方法获取保存着的键值对

SharedPreferences sharedPreferences=getSharedPreferences(PREFERENCE_NAME,MODE);
String name=sharedPreferences.getString("Name","Default Name");
int age=sharedPreferences.getInt("Age",20);
float height=sharedPreferences.getFloat("Height",);
 

 

其中第一个参数为NVP的名称,第二个参数为无法获取时的缺省值

 

Android为每个应用程序建立与包同名的目录,保存该程序产生的数据,文件等

SharedPreferences文件保存在/data/data/<packagename>/shared_prefs目录下

SaveSetting被保存为一个xml文件

 

补充Linux

文件权限描述创建者,同组用户,其他用户对文件的操作限制(-rw-rw---之类)

x 可执行 可读 可写 目录 普通文件 权限与之前设置的MODE有关

 

 

访问其他应用程序的SharedPreferences需要的3个条件

访问模式为全局读或全局写

需要知道共享者的包名和SharedPreferences名称,通过Context获取对象

需要知道每个数据的名称和数据类型以读取数据

 

Context c=null
try{
c=this.createPackageContext(PREFERENCE_PACKAGE,Context.CONTXT_IGNORE_SECURITY);
}catch(NameNotFoundException e){
e.printStackTrace();
}
SharedPreferences sharedPreferences=c.getSharedPreferences(PREFERENCE_NAME,MODE);
   

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值