`

使用SharedPreferences进行数据存储

阅读更多

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

  SharedPreferences sharedPreferences = getSharedPreferences("ljq", Context.MODE_PRIVATE);
  Editor editor = sharedPreferences.edit();//获取编辑器
  editor.putString("name", "张三");
  editor.putInt("age", 24);
  editor.commit();//提交修改

  生成的ljq.xml文件内容如下:
  <?xml version='1.0' encoding='utf-8' standalone='yes' ?>
  <map>
     <string name="name">张三</string>
     <int name="age" value="24" />
  </map>

  因为SharedPreferences背后是使用xml文件保存数据,getSharedPreferences(name,mode)方法 的第一个参数用于指定该文件的名称,名称不用带后缀,后缀会由Android自动加上。方法的第二个参数指定文件的操作模式,共有四种操作模式,这四种模 式前面介绍使用文件方式保存数据时已经讲解过。如果希望SharedPreferences背后使用的xml文件能被其他应用读和写,可以指定 Context.MODE_WORLD_READABLE和Context.MODE_WORLD_WRITEABLE权限。

  另外Activity还提供了另一个getPreferences(mode)方法操作SharedPreferences,这个方法默认使用当前类不带包名的类名作为文件的名称。

  访问SharedPreferences中的数据

  访问SharedPreferences中的数据代码如下:
  SharedPreferences sharedPreferences = getSharedPreferences("ljq", 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>为com.ljq.action的应用使用下面语句创建了preference。
  getSharedPreferences("ljq", Context.MODE_WORLD_READABLE);
  其他应用要访问上面应用的preference,首先需要创建上面应用的Context,然后通过Context 访问preference ,访问preference时会在应用所在包下的shared_prefs目录找到preference :

  Context otherAppsContext = createPackageContext("com.ljq.action", Context.CONTEXT_IGNORE_SECURITY);
  SharedPreferences sharedPreferences = otherAppsContext.getSharedPreferences("ljq",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使用SharedPreferences进行数据存储,缓存ID等数据

    2. 虽然SharedPreferences适用于小型数据,但大量数据存储应考虑使用SQLite数据库或文件系统。 3. 为了保持代码的整洁,建议将SharedPreferences的操作封装到一个单独的类或Util方法中。 4. 避免在主线程中使用`...

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

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

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

    在Android应用开发中,SharedPreferences是Android提供的一种轻量级的数据存储方式,主要用于存储应用程序中的配置信息或者用户的一些简单设置。这个实验旨在让你了解并掌握如何使用SharedPreferences来存储和读取...

    Android数据存储--SharedPreferences存储

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

    android中使用SharedPreferences进行数据存储的操作方法

    很多时候我们开发的软件需要向用户提供软件参数设置功能,例如我们常用的QQ,用户可以设置是否允许陌生人添加自己为...使用 SharedPreferences保存数据,其背后是用xml文件存放数据,文件存放在/data/data/&lt;package

    android使用SharedPreferences进行数据存储

    SharedPreferences是Android平台上用于轻量级数据存储的一个关键类,它主要用来保存应用程序的配置参数或简单数据,如用户的偏好设置。这些数据通常是键值对的形式,可以是字符串、整数、浮点数、布尔值等基本类型。...

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

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

    使用SharedPreferences保存一些数据

    在Android应用开发中,SharedPreferences是Android提供的一种轻量级的数据存储方式,主要用于存储一些简单的配置信息,如用户偏好设置、应用程序的状态等。它是一个键值对的存储系统,支持基本数据类型,如布尔型、...

    Android 使用SharedPreferences实现数据的读写

    SharedPreferences是Android提供的一种轻量级的数据存储方式,主要用于存储简单的键值对数据,如偏好设置、用户配置等。本文将详细介绍如何在Android中使用SharedPreferences进行数据的读写操作。 一、...

    SharedPreferences数据存储和读取实例

    - `layout11`可能展示SharedPreferences数据存储和读取的完整流程,例如创建一个设置界面,用户可以在其中更改一些应用设置,然后在另一个界面显示这些设置的当前状态。 4. 使用示例: ```java ...

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

    - 编辑共享首选项:使用`SharedPreferences.Editor`接口进行数据的写入,调用`putXXX()`方法(根据数据类型选择`putBoolean()`, `putInt()`, `putFloat()`, `putLong()`, `putString()`等),然后调用`commit()`或`...

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

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

    用SharedPreferences方式储存数据

    在Android应用开发中,...总之,SharedPreferences是Android开发中一个简单但实用的数据存储机制,适用于存储少量、非结构化的数据,并且可以方便地进行读写操作,为应用提供了一种便捷的本地数据持久化方案。

    SharedPreferences跨应用读取数据的源程序

    在Android开发中,...通过这两个示例项目,开发者可以学习到如何在Android中使用SharedPreferences进行数据存储,以及如何实现跨应用的数据共享。理解并熟练运用这些知识点对于创建功能丰富的Android应用至关重要。

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

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

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

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

    读写SharedPreferences中的数据

    在本文中,我们将深入探讨如何在Android中读写SharedPreferences数据,以及其内部的工作原理。 首先,让我们了解一下如何读取SharedPreferences中的数据。在Android中,通常我们会在需要使用SharedPreferences的...

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

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

Global site tag (gtag.js) - Google Analytics