`

Android数据存储之SharedPreferences

阅读更多
从网上资料整理的SharedPreferences应用,记录一下

SharedPreferences是以键值对来存储应用程序的配置信息的一种方式,,它只能存储基本数据类型,类似j2se应用中采用的properties文件。一个程序的配置文件仅可以在本应用程序中使用,或者说只能在同一个包内使用,不能在不同的包之间使用。 实际上SharedPreferences是采用了XML格式将数据存储到设备中,在DDMS中的File Explorer中的/data/data/<package name>/shares_prefs下。

SharedPreferences对象的两个方法:

1.Context.getSharedPreferences(String name,int mode)
name为本组件的配置文件名(如果想要与本应用程序的其他组件共享此配置文件,可以用这个名字来检索到这个配置文件),名称不用带后缀,后缀会由Android自动加上。

mode为操作模式,默认的模式为0或MODE_PRIVATE,如果希望SharedPreferences背后使用的xml文件能被其他应用读和写,可以指定Context.MODE_WORLD_READABLE和Context.MODE_WORLD_WRITEABLE权限。

2.Activity.getPreferences(int mode)
配置文件仅可以被调用的Activity使用,这个方法默认使用当前类不带包名的类名作为文件的名称。

mode为操作模式,默认的模式为0或MODE_PRIVATE,还可以使用MODE_WORLD_READABLE和MODE_WORLD_WRITEABLE。


如果要读取配置文件信息,只需要直接使用SharedPreferences对象的getXXX()方法即可,而如果要写入配置信息,则必须先调用SharedPreferences对象的edit()方法,使其处于可编辑状态,然后再调用putXXX()方法写入配置信息,最后调用commit()方法提交更改后的配置文件。

以下是示例代码:

import android.app.Activity; 

import android.content.SharedPreferences; 

public class Calc extends Activity { 

public static final String PREFS_NAME = "MyPrefsFile"; 

. . . 

@Override 

protected void onCreate(Bundle state){ 

super.onCreate(state); 

. . . 

//载入配置文件 

SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0); 

//或者使用 SharedPreferences settings = getPreferences(0); 
//getBoolean()第二个参数为缺省值,如果preference中不存在该key,将返回缺省值
boolean silent = settings.getBoolean("silentMode", false); 

setSilent(silent); 

} 

@Override 

protected void onStop(){ 

super.onStop(); 

//写入配置文件。可以使用SharedPreferences.Editor来辅助解决。 

SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0); 
//获取编辑器
SharedPreferences.Editor editor = settings.edit(); 

editor.putBoolean("silentMode", mSilentMode); 

editor.commit(); //一定要记得提交 

//或者再简单化一可以这样写 

SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0); 

setting.edit().putBoolean(“silentMode”,mSilentMode).commit(); 

} 

}
 


如果访问其他应用中的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>应替换成应用的包名
分享到:
评论

相关推荐

    android 数据存储之SharedPreferences

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

    数据存储之SharedPreferences存储

    前面呢,我们讲了文件的存储,文件的存储方式不适合保存一些比较复杂的文本数据。因此,我们来学习一下...SharedPreferences支持不同类型的数据存储,如果你存储的是整型,那你读取出来的也是整型,你存储的是浮点型,

    Android学习之使用SharedPreferences存储应用程序数据

    在Android开发中,SharedPreferences是一个轻量级的数据存储机制,用于保存应用程序中的少量配置信息,如用户设置、应用状态等。这些数据通常是非结构化的键值对,以XML格式持久化存储在设备上。使用...

    Android SharedPreferences实现数据存储功能

    Android SharedPreferences 数据存储功能实现 Android 中 SharedPreferences 是一种轻型的数据存储方式,不同于文件的存储方式,SharedPreferences 是使用键值对(key-value)数据的方式来存储数据的。...

    Android本地存储SharedPreferences详解

    Android本地存储SharedPreferences是Android系统提供的一种轻量级的本地存储机制,主要用于保存应用程序中的配置信息、用户设置和其他少量的数据。下面将详细介绍Android本地存储SharedPreferences的相关知识点。 ...

    Android数据共享 sharedPreferences 的使用方法

    SharedPreferences 是 Android 中的一种轻量级的数据存储方式,主要用来存储应用程序中的配置信息、用户偏好设置等。SharedPreferences 使用键值对的方式来存储数据,通过put方法将数据写入到文件中,並使用get方法...

    Android使用SharedPreferences存储数据的实现方法

    在Android应用开发中,SharedPreferences是Android提供的一种轻量级的数据存储方式,主要用于存储应用程序的配置信息或者用户的一些简单设置。它以键值对的形式存储数据,支持基本数据类型如字符串、整型、浮点型、...

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

    Android 系统中主要提供了三种方式用于实现数据持久化功能,分别是: 1、文件存储 2、SharedPreference 存储 3、数据库存储。SharedPreferences 是使用键值对的方式来存储数据的,使用 SharedPreferences来进行数据...

    Android中DataStore替代SharedPreferences

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

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

    综上所述,SharedPreferences是Android开发中常用的数据存储机制,尤其适用于存储用户配置和轻量级数据。它的使用简单便捷,但需要注意安全性和并发控制,以确保应用的稳定性和数据安全性。在实际开发中,根据需求...

    Android应用中使用SharedPreferences类存储数据的方法

    总结来说,SharedPreferences是Android中一个方便、安全的轻量级数据存储解决方案,主要用于保存应用的配置和偏好设置。尽管它不能处理复杂的数据结构,但对于简单的数据类型,它的易用性和效率使其成为首选的存储...

    Android数据存储--SharedPreferences存储

    SharedPreferences是Android提供的一种轻量级的数据存储方式,主要用于存储少量简单的键值对数据,如配置设置、用户偏好等。在本篇博文中,我们将深入探讨如何使用SharedPreferences进行数据存储,并通过源码分析其...

    Android应用源码之SharedPreferences.zip

    在Android应用开发中,SharedPreferences是Android提供的一种轻量级的数据存储机制,用于存储应用程序的简单配置数据,如用户设置、应用的状态信息等。这个压缩包“Android应用源码之SharedPreferences.zip”很可能...

    Android案例:注册名片。利用数据存储的SharedPreferences

    在Android应用开发中,数据存储是一项关键任务,用于持久化应用程序的数据。本案例重点探讨了如何使用SharedPreferences这一轻量级的数据存储方式来实现一个简单的注册名片功能。SharedPreferences主要用于存储一些...

    简介Android应用中sharedPreferences类存储数据的用法

    2. **数据存储**: - 数据实际是以文件形式存储在 `/data/data/{package_name}/shared_prefs/` 目录下,文件名为在 `getSharedPreferences()` 方法中指定的 `name` 加上 `.xml` 扩展名。 - 在内存中,`Editor` ...

    Android编程之SharedPreferences文件存储操作实例分析

    总的来说,SharedPreferences是Android中处理轻量级数据存储的便捷工具,适用于保存用户设置或应用程序的配置信息。它的优点在于操作简单、快速,但不适合存储大量数据或复杂结构的数据,对于这样的需求,应考虑使用...

    android使用SharedPreferences进行数据存储

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

Global site tag (gtag.js) - Google Analytics