使用isharedpreferencess存储数据需要开启子线程吗

Android开发:使用SharedPreferences存储数据_Linux编程_Linux公社-Linux系统门户网站
你好,游客
Android开发:使用SharedPreferences存储数据
来源:Linux社区&
作者:luoxiangyu001
1,保存到SharedPreferencesSharedPreferences preferences = getSharedPreferences(preferencesName,Context.MODE_WORLD_READABLE);//红色表示保存的名字,蓝色表示当前文件可以被其他应用读取,如果没有名为preferencesName的SharedPreferences 数据,则会创建一个新的。Editor editor = preferences.edit();//得到编辑器editor.putString("name", name);//保存一个名为name的数据<mit();//提交2,从SharedPreferences 获取数据SharedPreferences preferences = getSharedPreferences(preferencesName, Context.MODE_PRIVATE);//蓝色表示以私有方式打开String name = preferences.getString("name", "");//取出名为name的数据,如果没有该数据项,则返回"';
//蓝色部分其实是int型的数据,&Context.MODE_PRIVATE=0,其他的可以查查资料//SharedPreferences 其实是xml格式的文件,所以相当于xml存取数据的一种封装,不过我觉得是比xml存取好用多了。
相关资讯 & & &
& (11/28/:18)
& (10/10/:25)
& (05月21日)
& (03/08/:13)
& (07/10/:11)
   同意评论声明
   发表
尊重网上道德,遵守中华人民共和国的各项有关法律法规
承担一切因您的行为而直接或间接导致的民事或刑事法律责任
本站管理人员有权保留或删除其管辖留言中的任意内容
本站有权在网站内转载或引用您的评论
参与本评论即表明您已经阅读并接受上述条款/**Android应用开发SharedPreferences存储数据的使用方法
SharedPreferences是Android中最容易理解的数据存储技术,实际上SharedPreferences处理的就是一个key-value(键&#20540;对)SharedPreferences常用来存储一些轻量级的数据。
1、使用SharedPreferences保存数据方法如下:*/
//实例化SharedPreferences对象(第一步)
SharedPreferences mySharedPreferences= getSharedPreferences(&test&,
Activity.MODE_PRIVATE);
//实例化SharedPreferences.Editor对象(第二步)
SharedPreferences.Editor editor = mySharedPreferences.edit();
//用putString的方法保存数据
editor.putString(&name&, &Karl&);
editor.putString(&habit&, &sleep&);
//提交当前数据
//使用toast信息提示框提示成功写入数据
Toast.makeText(this, &数据成功写入SharedPreferences!& , Toast.LENGTH_LONG).show();
/**执行以上代码,SharedPreferences将会把这些数据保存在test.xml文件中,可以在File Explorer的data/data/相应的包名/test.xml 下导出该文件,并查看。
2、使用SharedPreferences读取数据方法如下:*/
//同样,在读取SharedPreferences数据前要实例化出一个SharedPreferences对象
SharedPreferences sharedPreference= getSharedPreferences(&test&,
Activity.MODE_PRIVATE);
// 使用getString方法获得value,注意第2个参数是value的默认&#20540;
String name =sharedPreferences.getString(&name&, &&);
String habit =sharedPreferences.getString(&habit&, &&);
//使用toast信息提示框显示信息
Toast.makeText(this, &读取数据如下:&&#43;&\n&&#43;&name:& &#43; name &#43; &\n& &#43; &habit:& &#43; habit,Toast.LENGTH_LONG).show();
&&相关文章推荐
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:208204次
积分:3810
积分:3810
排名:第8846名
原创:165篇
转载:126篇
评论:28条
(2)(1)(1)(3)(9)(5)(7)(5)(10)(8)(15)(16)(10)(39)(23)(31)(55)(51)
(window.slotbydup = window.slotbydup || []).push({
id: '4740887',
container: s,
size: '250,250',
display: 'inlay-fix'2016年4月 移动开发大版内专家分月排行榜第二
2017年8月 移动开发大版内专家分月排行榜第三2016年7月 移动开发大版内专家分月排行榜第三2015年12月 移动开发大版内专家分月排行榜第三
2016年4月 移动开发大版内专家分月排行榜第二
2017年8月 移动开发大版内专家分月排行榜第三2016年7月 移动开发大版内专家分月排行榜第三2015年12月 移动开发大版内专家分月排行榜第三
匿名用户不能发表回复!|
每天回帖即可获得10分可用分!小技巧:
你还可以输入10000个字符
(Ctrl+Enter)
请遵守CSDN,不得违反国家法律法规。
转载文章请注明出自“CSDN(www.csdn.net)”。如是商业用途请联系原作者。  在Android中一共提供了5种数据存储方式,分别为:
  (1)Files:通过FileInputStream和FileOutputStream对文件进行操作。具体使用方法可以参阅博文《》。
  (2)Shared&Preferences:常用来存储键值对形式的数据,对系统配置信息进行保存。
  (3)Content&Providers:数据共享,用于应用程序之间数据的访问。
  (4)SQLite:Android自带的轻量级关系型数据库,支持SQL语言,用来存储大量的数据,并且能够对数据进行使用、更新、维护等操作。
  (5)Network:通过网络来存储和获取数据。
  本篇博文主要介绍第二种方式,通过Shared&Preferences存储数据。
1.使用Shared&Preferences存储数据和读取数据
  Shared&Preferences是Android系统提供的一个轻量级的存储类,主要用于保存一些配置信息,比如窗口状态(大小、亮度等)。
  Shared&Preferences使用键值对的形式来存储数据,可以对常用数据类型boolean、float、int、long以及String进行保存。保存的数据以xml文件的形式存储在/data/data/&包名&/shared_prefs目录下。
1.1使用Shared&Preferences存储数据
  使用Shared&Preferences存储数据可以通过以下4个步骤来实现:(1)使用Context类提供的getSharedPreferences()方法,获取SharedPreferences对象。getSharedPreferences()方法的原型如下:
  public&abstract&SharedPreferences&getSharedPreferences(String&name,&int&mode);
  其中,参数name表示存储数据的文件名。有一点需要注意的是,此处只是定义了该文件名,该文件实际上并没有被创建,该文件只有当创建了SharedPreferences.Edit对象并使用该对象的commit()方法提交数据时,才会被创建。
  参数mode用于指定文件的操作模式,其可选值有Context.MODE_APPEND(内容追加模式)、Context.MODE_PRIVATE(默认操作模式)、Context.MODE_WORLD_READABLE(可读模式)、Context.MODE_WORLD_WRITEABLE(可写模式)四种,与《》中提到的openFileOutput()方法的第二个参数是一样的。
  (2)使用SharedPreferences对象的edit()方法创建SharedPreferences.Edit对象。使用Shared&Preferences方式存储数据时需要借助SharedPreferences.Edit类提供的方法来添加数据。SharedPreferences.Edit类提供的方法如图1所示。
图1&SharedPreferences.Edit类提供的方法
  可以看出,SharedPreferences.Edit类提供了以键值对的形式存储boolean、float、int、long以及String数据类型的数据的方法。
  (3)使用SharedPreferences.Edit对象存储数据。
  (4)使用commit()方法提交数据。
  通过以上的4个步骤实现数据存储的一个简单示例如下:
* Function
保存数据到SharedPreferences对象中
fileName保存数据的文件名;userName、userPswd保存的数据
博客园-依旧淡然
public boolean saveDataToSharedPreferences(String fileName, String userName, int userPswd) {
boolean isSaveDataSuccess = false;
//存储数据成功标志位
SharedPreferences sharedPreferences = mContext.getSharedPreferences(fileName, Context.MODE_PRIVATE);
SharedPreferences.Editor edit = sharedPreferences.edit();
//创建SharedPreferences.Editor对象
edit.putString("userName", userName);
//存储数据
edit.putInt("userPswd", userPswd);
isSaveDataSuccess = mit();
//提交存储数据
return isSaveDataS
  通过以上的代码,我们创建了一个Context.MODE_PRIVATE(默认操作模式)的数据存储文件,该文件中可以保存两项内容:userName和userPswd。
1.2单体测试
  为了验证以上这段代码的正确性,我们可以编写一段单体测试代码对其进行快速验证。具体的单体测试代码如下:
* Function
单体测试,保存数据到SharedPreferences对象中
博客园-依旧淡然
public void saveData() {
Context context = getContext();
MySharedPreferences mySharedPreferences = new MySharedPreferences(context);
String fileName = "userInfo";
//文件名称
String userName = "jack";
//保存的数据
int userPswd = 123;
//保存的数据
boolean flag = mySharedPreferences.saveDataToSharedPreferences(fileName, userName, userPswd);
Log.i(TAG, "--&&" + flag);
  运行该单体测试,我们可以看到Log日志中,flag打印结果为true,表明数据存储成功。并且我们创建了一个名为&userInfo&的存储文件,并在其中保存了两条数据内容:userName&=&"jack"和userPswd&=&123。
  那么,&userInfo&文件究竟被存放到了什么地方呢?答案是/data/data/&包名&/shared_prefs目录下,如图2所示。
图2&Shared&Preferences方式存储数据的文件目录
  有一点需要注意,以Shared&Preferences方式存储数据时,文件会默认的以xml的格式进行存储。
  打开&userInfo.xml&文件,可以看到其中内容如图3所示。
图3&&userInfo.xml&文件内容
  可见,通过以上的代码确实可以实现数据的正确存储。
1.3使用Shared&Preferences读取数据
  那么,又该如何在程序中读取存储在&userInfo.xml&文件中的内容呢?下面的代码给出了一种实现的方案。
* Function
从SharedPreferences对象中读取数据
fileName保存数据的文件名
博客园-依旧淡然
public Map&String, Object& readDataFromSharedPreferences(String fileName) {
Map&String, Object& map = new HashMap&String, Object&();
//Map对象,用于存储读取到的数据
SharedPreferences sharedPreferences = mContext.getSharedPreferences(fileName, Context.MODE_PRIVATE);
String userName = sharedPreferences.getString("userName", "");
//读取SharedPreferences对象中的数据
int userPswd = sharedPreferences.getInt("userPswd", 0);
map.put("userName", userName);
//将读取到的数据存入Map对象
map.put("userPswd", userPswd);
  通过以上的代码,实现了从Shared&Preferences对象中读取数据,并将读取到的数据保存到了Map对象中。
阅读(...) 评论()本帖子已过去太久远了,不再提供回复功能。

我要回帖

更多关于 xsharedpreferences 的文章

 

随机推荐