`
hunankeda110
  • 浏览: 750294 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

android数据存储之二:使用SharedPreferences进行数据存储

阅读更多

很多时候我们开发的软件需要向用户提供软件参数设置功能,例如我们常用的QQ,用户可以设置是否允许陌生人添加自己为好友。对于软件配置参数的保存,如果是window软件通常我们会采用ini文件进行保存,如果是j2se应用,我们会采用properties属性文件进行保存。如果是Android应用,我们最适合采用什么方式保存软件配置参数呢?Android平台给我们提供了一个SharedPreferences类,它是一个轻量级的存储类,特别适合用于保存软件配置参数。使用SharedPreferences保存数据,其背后是用xml文件存放数据,文件存放在/data/data/<package name>/shared_prefs目录下:
SharedPreferences sharedPreferences = getSharedPreferences("itcast", Context.MODE_PRIVATE);
Editor editor = sharedPreferences.edit();//获取编辑器
editor.putString("name", "我的博客");
editor.putInt("age", 4);
editor.commit();//提交修改
生成的itcast.xml文件内容如下:
<?xml version='1.0' encoding='utf-8' standalone='yes' ?>
<map>
<string name="name">我的博客</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("cn.itcast.action", Context.CONTEXT_IGNORE_SECURITY);
SharedPreferences sharedPreferences = otherAppsContext.getSharedPreferences("itcast", 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>应替换成应用的包名

0
0
分享到:
评论

相关推荐

    Android数据持久化之二:SharedPreferences 存储

    数据持久化就是指将那些内存中的瞬时数据保存到持久化设备中(如手机文件、数据库等),当关机,...SharedPreferences 是使用键值对的方式来存储数据的,使用 SharedPreferences来进行数据持久化要比使用文件方便很多。

    Android 3种数据保存(SharedPreferences存储 内部文件存储 数据库存储)

    本教程将详细介绍Android中的三种主要数据存储方式:SharedPreferences存储、内部文件存储以及数据库存储。 1. SharedPreferences存储 SharedPreferences是Android提供的一种轻量级的数据存储方式,用于保存应用...

    Android开发:Android Studio:数据存储方式:SharedPreferences与SQLite数据库.pdf

    在Android应用开发中,数据存储是构建功能丰富应用的基础之一。Android提供了多种数据存储方式,包括文件存储、SharedPreferences、SQLite数据库、ContentProvider以及网络存储,每种方式各有适用场景。本文主要探讨...

    Android数据存储1:文件、SharedPreferences和获取sd卡信息

    在Android应用开发中,数据存储是一项基础且重要的任务。这篇自学笔记主要涵盖了三种常见的数据存储方式:文件存储、SharedPreferences以及获取SD卡信息。下面将详细解释这些知识点。 **1. 文件存储** Android提供...

    SharedPreferences基本使用

    - 数据安全性:虽然SharedPreferences存储的数据相对简单,但也不能忽视其安全性,尤其是当数据涉及到用户隐私时。 - 多线程问题:由于SharedPreferences的读写操作不是线程安全的,如果在多线程环境下使用,需...

    Android使用SharedPreferences和SQLite数据库实现数据存储

    本文将详细探讨如何使用SharedPreferences和SQLite数据库这两种常见的Android数据存储机制。 首先,我们来看SharedPreferences。SharedPreferences提供了一种轻量级的数据存储方式,适用于保存简单的键值对数据,如...

    Android数据存储之SharedPreferences

    SharedPreferences是Android提供的一种轻量级的数据存储方式,主要用于存储简单的小型数据,如偏好设置、用户选项等。在本项目中,开发者已经根据官方文档编写了关于SharedPreferences的代码示例,你可以通过下载来...

    使用SharedPreferences进行数据存储

    以上就是关于`SharedPreferences`在Android中进行数据存储的详解,希望对你理解和使用这个工具有所帮助。如果想了解更多细节,可以参考给定的博客链接:[博客链接](https://hack-zhang.iteye.com/blog/1265370)。

    Android数据存储--SharedPreferences存储

    在本篇博文中,我们将深入探讨如何使用SharedPreferences进行数据存储,并通过源码分析其工作原理。 一、SharedPreferences的基本使用 1. 获取SharedPreferences对象 Android系统提供了两个方法来获取...

    Android项目设计与开发:SharedPreferences.ppt

    嵌入式Android项目设计与开发 第六章 数据存储 ——SharedPreferences 2 SharedPreferences 键值对概念: 某一个数据都由一个键和一个值构成,键代表数据的名称,它是全局唯一的。具体的数据内容存放在值中。 键值对...

    Android使用SharedPreferences进行数据存储,缓存ID等数据

    在Android应用开发中,SharedPreferences是Android提供的一种轻量级的数据存储机制,主要用于存储应用程序的配置信息或者临时数据,如用户偏好设置、登录状态等。它提供了简单键值对的存储方式,非常适合用来缓存像...

    Android开发之数据存储的四种方式之SharedPreferences

    Android项目开发中使用的数据存储方式有:网络存储、sqlite存储、File存储和SharedPreferences存储,四种存储方式对应的Demo别人是NetworkDemo、SqliteDemo、FileDemo和SharedPreferencesDemo,根据应用的场景选择...

    实验九 使用SharedPreferences存储简单数据

    通过这个实验,你将学习到如何在Android应用中使用SharedPreferences进行数据持久化,这是一项基础但重要的技能,对于处理用户设置和应用状态非常有用。同时,你还将接触到XML文件的使用以及Android的资源管理。希望...

    android 数据存储之SharedPreferences

    在本项目"android 数据存储之SharedPreferences"中,我们将深入探讨如何使用SharedPreferences来实现数据的持久化。 SharedPreferences的工作原理是基于XML文件,这些文件存放在设备的内部存储区,通常位于`data/...

    Android中DataStore替代SharedPreferences

    Android开发者们长期以来一直依赖SharedPreferences作为轻量级的数据存储解决方案,它的简单易用性使其在小规模数据存储方面受到了广泛欢迎。然而,随着应用程序复杂性的增加,SharedPreferences的局限性逐渐暴露...

    Sharedpreferences存储数据的使用方法_完整Demo_AndroidStudio

    在这个"Sharedpreferences存储数据的使用方法_完整Demo_AndroidStudio"中,我们将深入探讨如何在Android Studio环境下使用Shared Preferences。 1. **共享首选项(Shared Preferences)的基本概念** - Shared ...

    android 使用SharedPreferences对数据存储/删除/读取/文件删除

    在Android应用开发中,...以上就是关于Android中使用SharedPreferences进行数据存储、删除和读取的基本操作。在实际开发中,合理使用SharedPreferences能有效地帮助我们保存和管理应用的配置和状态信息。

    Android存储---SharedPreferences的介绍与使用demo

    其中,SharedPreferences是Android提供的一种轻量级的数据存储方式,它主要用于存储简单的键值对数据,如布尔值、整型、浮点型、字符串等。本篇文章将深入探讨SharedPreferences的工作原理、使用方法以及相关示例。 ...

    Android数据存储——SharedPreferences(登入记住密码)

    SharedPreferences是Android提供的一种简单的数据存储机制,它可以保存基本类型的数据,如布尔值、整型、浮点型、字符串以及字符串集合。这些数据会被保存在XML文件中,并在系统中全局可访问。SharedPreferences支持...

    Android项目设计与开发:SharedPreferences 1.ppt

    嵌入式Android项目设计与开发 第六章 数据存储 ——SharedPreferences 1 SharedPreferences 键值对概念: 某一个数据都由一个键和一个值构成,键代表数据的名称,它是全局唯一的。具体的数据内容存放在值中。 键值对...

Global site tag (gtag.js) - Google Analytics