`
chenyunhong
  • 浏览: 141072 次
  • 性别: Icon_minigender_1
  • 来自: 真的不知道
社区版块
存档分类
最新评论

Android中使用SharedPreferences进行数据存储及文件操作模式

 
阅读更多

 

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


      因为SharedPreferences背后是使用xml文件保存数据,getSharedPreferences(name,mode)方法的第一个参数用于指定该文件的名称,名称不用带后缀,后缀会由Android自动加上。方法的第二个参数指定文件的操作模式,共有四种操作模式,这四种模式



Context.MODE_PRIVATE:为默认操作模式,代表该文件是私有数据,只能被应用本身访问,在该模式下,写入的内容会覆盖原文件的内容,如果想把新写入的内容追加到原文件中。可以使用Context.MODE_APPEND

Context.MODE_APPEND:模式会检查文件是否存在,存在就往文件追加内容,否则就创建新文件。

Context.MODE_WORLD_READABLE和Context.MODE_WORLD_WRITEABLE用来控制其他应用是否有权限读写该文件。

MODE_WORLD_READABLE:表示当前文件可以被其他应用读取;

MODE_WORLD_WRITEABLE:表示当前文件可以被其他应用写入。

如果希望文件被其他应用读和写,可以传入: 

openFileOutput("123.txt", Context.MODE_WORLD_READABLE + Context.MODE_WORLD_WRITEABLE);


      android有一套自己的安全模型,当应用程序(.apk)在安装时系统就会分配给他一个userid,当该应用要去访问其他资源比如文件的时候,就需要userid匹配。默认情况下,任何应用创建的文件,sharedpreferences,数据库都应该是私有的(位于/data/data/<package name>/files),其他程序无法访问。除非在创建时指定了Context.MODE_WORLD_READABLE或者Context.MODE_WORLD_WRITEABLE ,只有这样其他程序才能正确访问。


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


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

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

代码如下:
package com.cyh.service;

import java.util.HashMap;
import java.util.Map;

import android.content.Context;
import android.content.SharedPreferences;
import android.content.SharedPreferences.Editor;

/**
 * 软件参数保存
 * @author Administrator
 *
 */
public class PreferenceService {
	
	private Context context;
	
	public PreferenceService(Context context){
		this.context = context;
	}

	/**
	 * 保存参数
	 * @param name
	 * @param age
	 * @throws Exception
	 */
	public void save(String name , Integer age) throws Exception{
		SharedPreferences preference = context.getSharedPreferences("sclead", Context.MODE_PRIVATE);
		Editor editor = preference.edit();
		editor.putString("name", name);
		editor.putInt("age", age);
		editor.commit();//把数据提交会文件
	}
	
	/**
	 * 获取各项配置参数
	 * @return
	 */
	public Map<String, String> getPreferences(){
		Map<String, String> maps = new HashMap<String, String>();
		SharedPreferences preference = context.getSharedPreferences("sclead", Context.MODE_PRIVATE);
		maps.put("name", preference.getString("name", ""));
		maps.put("age", String.valueOf(preference.getInt("age", 0)));
		return maps;
	}
}
 

分享到:
评论

相关推荐

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

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

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

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

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

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

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

    在Android应用开发中,数据存储是一项基础且重要的任务。Shared Preferences是Android提供的一种轻量级的数据存储机制,常用于保存应用程序中的配置设置或简单的键值对数据。它以XML格式存储,适合保存少量非结构化...

    Android 使用SharedPreferences实现数据的读写

    本文将详细介绍如何在Android中使用SharedPreferences进行数据的读写操作。 一、SharedPreferences概述 SharedPreferences是一个接口,提供了存储和检索简单键值对(如布尔值、整数、浮点数、字符串和字符串集)的...

    Android数据存储--SharedPreferences存储

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

    Android中使用SharedPreferences保存密码(简洁版)的代码清单.pdf

    在Android开发中,SharedPreferences是一个轻量级的数据存储机制,用于保存应用中的简单配置数据,如用户设置、密码等。这个PDF文件提供了一个简洁的示例,展示了如何在Android应用中使用SharedPreferences来保存和...

    android SharedPreferences小例子

    在Android开发中,SharedPreferences是一个轻量级的数据存储机制,用于保存和读取少量的基本数据类型,如字符串、整型、布尔值等。它非常适合用来存储应用程序的配置信息或用户偏好设置,因为这些数据通常不需要复杂...

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

    以下是使用SharedPreferences进行数据存储的详细步骤和相关知识点: 1. **获取SharedPreferences对象**: 要使用SharedPreferences,首先需要通过`getSharedPreferences()`或`getPreferences()`方法获取一个...

    读写SharedPreferences中的数据

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

    android学习SharedPreferences的使用方法

    在Android开发中,SharedPreferences是一个轻量级的数据存储方式,用于保存应用中的小量、简单的数据,如用户设置、应用状态等。它提供了键值对(key-value pairs)的存储,支持基本数据类型如布尔型、整型、浮点型...

    Android SharedPreferences设置初始密码

    在Android开发中,SharedPreferences是一个轻量级的数据存储方式,常用于保存应用的配置信息或用户设置,如登录状态、主题颜色、用户偏好等。在这个场景中,我们将详细探讨如何使用SharedPreferences来设置和修改...

    Android之SharedPreferences数据保存

    这通常在Activity或Fragment中完成,通过调用`getSharedPreferences()`方法,传入一个文件名(用于区分不同的SharedPreferences文件)和模式(一般使用`MODE_PRIVATE`,表示只有应用本身可以访问)。 ```java ...

    android的SharedPreferences详解

    SharedPreferences是Android系统提供的一种轻量级的数据存储方式,它主要用于应用程序中简单数据的持久化存储,例如用户设置、应用状态等。SharedPreferences采用键值对的形式保存数据,支持基本类型如布尔、整型、...

    android 数据存储之SharedPreferences

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

    Android应用源码之SharedPreferences.zip

    这个压缩包“Android应用源码之SharedPreferences.zip”很可能包含了一个示例项目,展示了如何在实际应用中使用SharedPreferences进行数据持久化。 SharedPreferences主要特点是简单易用,它提供了键值对的存储方式...

    android使用SharedPreferences进行数据存储

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

    Android数据共享 sharedPreferences 的使用方法

    在这篇文章中,我们将主要介绍 Android 中使用 SharedPreferences 进行数据共享的方法。 什么是 SharedPreferences? SharedPreferences 是 Android 中的一种轻量级的数据存储方式,主要用来存储应用程序中的配置...

    android 保存配置文件 SharedPreferences

    在Android开发中,SharedPreferences是系统提供的一种轻量级的数据存储方式,主要用于应用程序中保存简单的配置信息,如用户设置、登录状态等。它采用键值对(key-value pairs)的形式存储数据,支持基本类型如字符...

    安卓Android源码——SharedPreferences.rar

    在Android源码中,SharedPreferences实现了一种持久化的本地数据存储方式,它将数据序列化后存储在XML文件中,通常位于应用的私有数据目录下。 1. **SharedPreferences的工作原理:** - SharedPreferences的核心类...

Global site tag (gtag.js) - Google Analytics