`
java-mans
  • 浏览: 11455556 次
文章分类
社区版块
存档分类
最新评论

android数据存储与访问之使用SharedPreferences

 
阅读更多

很多时候我们开发的软件需要向用户提供软件参数设置功能,例如我们常用的QQ,用户可以设置是否允许陌生人添加自己为好友。对于软件配置参数的保存,如果是window软件通常我们会采用ini文件进行保存,如果是j2se应用,我们会采用properties属性文件或者xml进行保存。如果是Android应用,我们最适合采用什么方式保存软件配置参数呢?Android平台给我们提供了一个SharedPreferences类,它是一个轻量级的存储类,特别适合用于保存软件配置参数。使用SharedPreferences保存数据,其背后是用xml文件存放数据,文件存放在/data/data/<package name>/shared_prefs目录下:


SharedPreferences sharedPreferences = getSharedPreferences("config", Context.MODE_PRIVATE);
Editor editor = sharedPreferences.edit();//获取编辑器
editor.putString("name", "laotian");
editor.putInt("age", 4);

editor.commit();//提交修改


生成的config.xml文件内容如下:
<?xml version='1.0' encoding='utf-8' standalone='yes' ?>
<map>
<string name="name">laotian</string>
<int name="age" value="4" />
</map>
因为SharedPreferences背后是使用xml文件保存数据,getSharedPreferences(name,mode)方法的第一个参数用于指定该文件的名称,名称不用带后缀,后缀会由Android自动加上。方法的第二个参数指定文件的操作模式,共有四种操作模式,这四种模式前面介绍使用文件方式保存数据时已经讲解过。如果希望SharedPreferences背后使用的xml文件能被其他应用读和写,可以指定Context.MODE_WORLD_READABLE和Context.MODE_WORLD_WRITEABLE权限。
另外Activity还提供了另一个getPreferences(mode)方法操作SharedPreferences,这个方法默认使用当前类不带包名的类名作为文件的名称。


访问SharedPreferences中的数据代码如下:
SharedPreferences sharedPreferences = getSharedPreferences("itcast", Context.MODE_PRIVATE);
//getString()第二个参数为缺省值,如果preference中不存在该key,将返回缺省值


String name = sharedPreferences.getString("name", "");
int age = sharedPreferences.getInt("age", 1);

如果访问其他应用中的Preference,前提条件是:该preference创建时指定了Context.MODE_WORLD_READABLE或者Context.MODE_WORLD_WRITEABLE权限。如:有个<package name>为cn.itcast.action的应用使用下面语句创建了preference。
getSharedPreferences("itcast", Context.MODE_WORLD_READABLE);
其他应用要访问上面应用的preference,首先需要创建上面应用的Context,然后通过Context 访问preference ,访问preference时会在应用所在包下的shared_prefs目录找到preference :


Context otherAppsContext = createPackageContext("com.oce.action", Context.CONTEXT_IGNORE_SECURITY);
SharedPreferences sharedPreferences = otherAppsContext.getSharedPreferences("config", Context.MODE_WORLD_READABLE);
String name = sharedPreferences.getString("name", "");
int age = sharedPreferences.getInt("age", 0);

如果不通过创建Context访问其他应用的preference,也可以以读取xml文件方式直接访问其他应用preference对应的xml文件,如:
File xmlFile = new File(“/data/data/<package name>/shared_prefs/itcast.xml”);//<package name>应替换成应用的包名


分享到:
评论

相关推荐

    Android数据存储和访问实验报告

    1.掌握SharedPreferences的使用方法; 2.掌握各种文件存储的区别与适用情况; 3.了解SQLite数据库的特点和体系结构; 4.掌握SQLite数据库的建立和操作方法; 5.理解ContentProvider的用途和原理; 6.掌握...

    android数据存储与访问

    数据存储在开发中是使用最频繁的,在这里主要介绍Android平台中实现数据存储的4种方式,分别是:1 使用SharedPreferences存储数据;2 文件存储数据;3 SQLite数据库存储数据;4 使用ContentProvider存储数据;

    Android基础 布局、数据存储访问、XML系列化解析和SharedPreferences入门

    3、数据存储与访问 主要介绍存储文件到外部存储器和内部存储器,利用系统提供的API获取路径时,需要精准的掌握他们的目录层级。在将数据保存到SDCard时,需要判断剩余存储空间。 SharedPreferences存储对于简单的...

    实验六、数据存储和访问(一).docx

    android studio应用程序开发作业,实验数据存储和访问。1、制作启动界面如下图所示 2、选择“教师”,点击“登录”按钮,使用保存在SharedPreferences里的帐号信息验证用户名和密码。登录成功后跳转到如下界面。

    Android数据存储与访问(含源码加文档)

    1、练习使用SharedPreferences方式进行数据存储和访问 2、练习使用SQLite数据库的方式进行数据存储和访问 三、实验原理 数据存储方式,SharedPreferences,SQLite。 四、实验步骤及关键技术 一.本项目包含以下四个...

    Android数据存储与访问

    各种内部储存、外部储存、数据库储存方法,掌握SharedPreferences的使用方法;各种文件存储的区别与适用情况;SQLite数据库的特点和体系结构;SQLite数据库的建立和操作方法;ContentProvider的用途和原理;...

    八、数据存储与访问 Android开发与实践

    1. SharedPreferences(配置) 2. 文件存储 3. SQLite数据库 4. ContentProvider

    上海建桥学院-移动应用开发-实验报告3-Android数据存储

    实验三 Android数据存储 一、实验目的及要求 (1) 掌握Android的SharedPreferences的使用 (2) 掌握在Android中使用SQLite的方法 二、实验内容及步骤 任务:根据下述要求实现对应程序 1、 根据所给界面1完成登入...

    在android开发中进行数据存储与访问的多种方式介绍

    Android为数据存储提供了多种方式,分别有如下几种: 文件 SharedPreferences SQLite数据库 内容提供者(Content provider) 网络 使用文件进行数据存储 首先给大家介绍使用文件如何对数据进行存储,Activity提供了...

    Android使用文件进行数据存储的方法

    本文实例讲述了Android使用文件进行数据存储的方法。分享给大家供大家参考。具体如下: 很多时候我们开发的软件需要对处理后的数据进行存储,以供再次访问。Android为数据存储提供了如下几种方式: 文件 ...

    SharedPreferences例子源码

    SharedPreferences是Android平台上一个轻量级的存储类,主要是保存一些常用的配置比如窗口状态,一般在Activity中重载窗口状态onSaveInstanceState保存一般使用SharedPreferences完成,它提供了Android平台常规的...

    tray:具有多进程支持的Android的SharedPreferences替代

    已弃用-不再积极维护 纸盒-Android的SharedPreferences替代品 如果您已阅读的文档,则可能会看到以下警告...迁移保存当前数据在SharedPreferences到托盘与 托盘经过100%单元测试! 0皮棉警告/错误 Android 6.0 支持

    Android代码-Android

    Android Android Study Project target. ...ex07:数据存储 SharedPreferences ex08:数据存储 SQLite 数据库 ex09:网络访问 HTTP get/post WebService ex10:网络服务 使用Ksoap2来访问WebSerivce

    老罗android开发视频教程全集百度网盘下载

    Android基础阶段:平台架构特性(JAVA/C) Market/应用程序组件 环境搭建与部署/打包与发布 AVD/DDMS/AAPT 调试与测试 相关资源访问/资源制作 Activity/Service/Broadcast Receiver/Content Provider/原理(生命周期)及...

    疯狂Android讲义源码

     第8章 Android的数据存储和IO 306  8.1 使用SharedPreferences 307  8.1.1 SharedPreferences与Editor  简介 307  8.1.2 SharedPreferences的存储  位置和格式 308  8.1.3 读、写其他应用Shared  ...

    Android手机平台音乐播放器毕业论文

    Android手机平台音乐播放器毕业论文 目录 第一章 引 言 - 1 - ...5.6 数据存储方式 - 47 - 5.6.1 SharedPreferences - 47 - 5.6.2 File存储方式 - 48 - 5.6.3 SQLiteDatabase数据库 - 48 - 第六章 结 论 - 49 -

    Android实例代码

    第8章、Android的数据存储和IO 8.1、使用SharedPreferences:SharedPreferences; Editor; 8.2、File存储:openFileOutput和openFileInput; 读写SD卡文件; 8.3、SQLite数据库:SQL语句; SQLiteDatabase; ...

    疯狂Android讲义(第2版)源代码 第6章~第9章

    第8章、Android的数据存储和IO 8.1、使用SharedPreferences:SharedPreferences; Editor; 8.2、File存储:openFileOutput和openFileInput; 读写SD卡文件; 8.3、SQLite数据库:SQL语句; SQLiteDatabase; ...

    Android音乐播放器毕业设计论文

    目录 第一章 引 言 - 1 - 1.1 项目背景 - 1 - 1.2 编写目的 - 2 - ...5.6 数据存储方式 - 47 - 5.6.1 SharedPreferences - 47 - 5.6.2 File存储方式 - 48 - 5.6.3 SQLiteDatabase数据库 - 48 - 第六章 结 论 - 49 -

Global site tag (gtag.js) - Google Analytics