您的位置:首页 > 移动开发 > Android开发

Android SharedPreferences笔记

2015-11-07 13:48 239 查看
SharedPreferences数据存储笔记
好奇、学习、总结、分享

一、简介:

在实际开发中,类似于账号、密码保存、软件参数配置、播放进度值等比较简单的数据需要做持久化保存时,推荐使用SharedPerferences,SP是一种轻量级的数据存储方式,它以键值对的方式将数据存储进xml文件中。

SharedPreferences 可以用于数据的共享,包括应用程序之间,或者同一个应用程序中的不同组件。比如两个activity除了通过Intent传递数据之外,也可以通过ShreadPreferences来共享数据。

SharedPreferences只能保存简单类型的数据,例如int、boolean、float、long以及String类类型,如下所示。



二、SharedPreferences数据的四种操作模式

Context.MODE_PRIVATE:为默认操作模式,代表该文件是私有数据,只能被应用本身访问,在该模式下,写入的内容会覆盖原文件的内容

Context.MODE_APPEND:模式会检查文件是否存在,存在就往文件追加内容,否则就创建新文件.

Context.MODE_WORLD_READABLE:表示当前文件可以被其他应用读取.

Context.MODE_WORLD_WRITEABLE:表示当前文件可以被其他应用写入

三、获取SharedPreferences的三种方式:

1 调用Context对象的getSharedPreferences()方法【常用】

2 调用Activity对象的getPreferences()方法

3 调用PreferenceManager类的getDefaultSharedPreferences()方法【不常用】

三种方式的区别:

1 调用Context对象的getSharedPreferences()方法获得的SharedPreferences对象可以被同一应用程序下的其他组件共享.

2 调用Activity对象的getPreferences()方法获得的SharedPreferences对象只能在该Activity中使用.

3 通过PreferenceManager【偏好管理器】获取的sharedPreference对象,会自动创建一个包名.类名_Preferences.xml文件。【不常用】

四、调用Context类的getSharedPreferences方法存储数据和读取数据的案例

1、sharedPreference保存数据

//1.通过Context获取sharedpreference对象

//参数1:xml文件名,不用写后缀名,系统会自动添加,参数2:文件模式[4种常用模式]

SharedPreferences sharedPreferences = context.getSharedPreferences("userinfo",Context.MODE_PRIVATE );

//2.通过sp中的方法获取Editor对象,用来向xml文件中写入数据

Editor edit = sharedPreferences.edit();

//3.往editor对象中存值,键值对

//参数1:代表是存放数据的 名称,参数2:代表存放数据的值

edit.putString("username", username);

edit.putString("password", password);

//4.提交editor对象,把上面写入的数据保存到xml文件中

//注意:commit方法相当于数据库事务中的提交(commit)操作。

edit.commit();

//提示保存成功

Toast.makeText(this, "保存成功", Toast.LENGTH_SHORT).show();

安卓系统会自动在APP的安装目录下创建一个shared_prefs目录,并在该目录下创建userinfo.xml文件

【具体路径:data/data/com.leee.helloworld/shared_prefs/userinfo.xml】



2、sharedPreference读取数据:

//1.通过Context获取sharedpreference对象

//参数1:xml文件名,参数2:文件模式[4种常用模式]

SharedPreferences sharedPreferences = context.getSharedPreferences("userinfo", Context.MODE_PRIVATE);

//2.通过对象获取存放的内容

//参数1:要获取的key的名称,参数2:缺省值,如果sp中不存在这个key值,那么就用参数2的值作为返回指

String username = sharedPreferences.getString("username", "admin");

String password = sharedPreferences.getString("password", "admin");

//3.使用获取到的key的值。

本文是整理之前学习安卓过程中的笔记,方便自己巩固和加强记忆。本文也参考了其他优秀的文章,如下:

1、/article/8027404.html

2、http://www.cnblogs.com/linjiqin/archive/2011/05/26/2059133.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: