摘要:本文将带你了解Android应用开发Android SharedPreference存储技术,希望本文对大家学Android有所帮助。
本文将带你了解Android应用开发Android SharedPreference存储技术,希望本文对大家学Android有所帮助。
"
一、SharedReferences简介
>>>SharesPreferences是用键值对的方式来存储数据的,同样,读取的时候也是通过键值对的方式进行读取,即提供一个键,就可以读出这个键所对应的值。SharesPreferences还支持不同数据类型的存储,并且存进去的数据和之后读取出来的数据类型不会发生变化。
二、使用SharedPreferences进行数据存储
首先需要获取到一个SharedPreferences对象,Android提供了3种方法:
1、Context类中的SharedPreferences方法:
此方法接受两个参数:第一个参数用于指定SharedPreferences文件的名称,如果该文件名不存在则会创建一个,否则不予创建,默认将数据继续存储进该已存在的文件目录当中。SharedPreferences文件目录都是存放在/data/data//shared_prefs目录下的。第二个参数是用于指定操作模式,操作模式共有四种:(等于号后是该参数可用数字代替的值)
Context.MODE_PRIVATE = 0
Context.MODE_APPEND = 32768
Context.MODE_WORLD_READABLE = 1
Context.MODE_WORLD_WRITEABLE = 2
Context.MODE_PRIVATE:为默认操作模式,代表该文件是私有数据,只能被应用本身访问,在该模式下,写入的内容会覆盖原文件的内容,如果想把新写入的内容追加到原文件中。可以使用Context.MODE_APPEND
Context.MODE_APPEND:模式会检查文件是否存在,存在就往文件追加内容,否则就创建新文件。
Context.MODE_WORLD_READABLE和Context.MODE_WORLD_WRITEABLE用来控制其他应用是否有权限读写该文件。
MODE_WORLD_READABLE:表示当前文件可以被其他应用读取;MODE_WORLD_WRITEABLE:表示当前文件可以被其他应用写入。
2、Activity类中的getPreferences()方法:
只接收一个参数用于指定操作模式, 该方法默认将当前包名作为SharedPreferences文件名。
3、PreferenceManager类中的getDefaultSharedPreferences()方法:
这是一个静态方法,只接收一个Context参数,并自动使用当前应用程序的包名作为前缀来命名SharedPreferences文件名。
已经通过上述方法获得了SharedPreferences对象,现在就可以进行存储操作了。存储操作主要分三步实现:
(1)调用SharedPreferences对象的edit()方法获得一个SharedPreferences.Editor对象。
(2)向SharedPreferences.Editor对象中添加数据,根据不同的数据类型调用不同的方法,如putString()、
putChar()等方法
(3)调用apply()/commit()方法提交添加的数据。这两种方法有什么异同呢?
这两个方法的区别在于:
1. apply没有返回值而commit返回boolean表明修改是否提交成功
2. apply是将修改数据原子提交到内存, 而后异步真正提交到硬件磁盘,
而commit是同步的提交到硬件磁盘,因此,在多个并发的提交commit的时候,他们会等待正在处理的commit保存到磁盘后在操作,从而降低了效率。而apply只是原子的提交到内存,后面有调用apply的函数的将会直接覆盖前面的内存数据,这样从一定程度上提高了很多效率。
3. apply方法不会提示任何失败的提示。
由于在一个进程中,sharedPreference是单实例,一般不会出现并发冲突,如果对提交的结果不关心的话,建议使用apply,当然需要确保提交成功且有后续操作的话,还是需要用commit的。
示例代码如下:
?
1
2
3
4
5
6
7
<code>SharedPreferences
preferences=getSharedPreferences(""user"",Context.MODE_PRIVATE);
Editor editor=preferences.edit();
String name=""xixi"";
String age=""22"";
editor.putString(""name"", name);
editor.putString(""age"", age);
editor.commit();</code>
三、从SharedPreferences读取数据:
从SharedPreferences读取数据更加简单,SharedPreferences对象提供了一系列的get方法与SharedPreferences.Editor对象的put方法相对应,比如读取一个String类型的数据就使用getString();,这些get方法都接收两个参数,第一个参数用于指定键,第二个参数用于指定当传入键找不到对应值时返回的默认值。
示例代码如下:
?
1
2
3
<code>SharedPreferences
preferences=getSharedPreferences(""user"",
Context.MODE_PRIVATE);
String name=preferences.getString(""name"",
""defaultname"");
String age=preferences.getString(""age"",
""0"");</code>
"
本文由职坐标整理并发布,希望对同学们有所帮助。了解更多详情请关注职坐标移动开发之Android频道!
您输入的评论内容中包含违禁敏感词
我知道了
请输入正确的手机号码
请输入正确的验证码
您今天的短信下发次数太多了,明天再试试吧!
我们会在第一时间安排职业规划师联系您!
您也可以联系我们的职业规划师咨询:
版权所有 职坐标-一站式IT培训就业服务领导者 沪ICP备13042190号-4
上海海同信息科技有限公司 Copyright ©2015 www.zhizuobiao.com,All Rights Reserved.
沪公网安备 31011502005948号