Android学习笔记_8_使用SharedPreferences存储数据
来源:互联网 发布:logo字体发表软件 编辑:程序博客网 时间:2024/05/23 00:15
1、SharedPreferences介绍:
Android平台给我们提供了一个SharedPreferences类,它是一个轻量级的存储类,特别适合用于保存软件配置参数。使用SharedPreferences保存数据,其背后是用xml文件存放数据,文件存放在/data/data/<package name>/shared_prefs目录下。
package com.example.service;import java.util.HashMap;import java.util.Map;import android.content.Context;import android.content.SharedPreferences;import android.content.SharedPreferences.Editor;public class PerferencesService { private Context context; public PerferencesService(Context context) { super(); this.context = context; } /** * 保存参数 * @param name * @param age */ public void save(String name,Integer age){ //内部默认使用的是xml保存文件,因此文件名称是person,而不是person.xml即不需要后缀名 SharedPreferences preferences = context.getSharedPreferences("person", Context.MODE_PRIVATE); Editor editor = preferences.edit(); //只是将数据保存到内存中 editor.putString("name", name); editor.putInt("age", age); //提交数据,将数据保存到文件中 editor.commit(); } /** * 获取配置参数 * @return */ public Map<String, String> getPreference(){ Map<String, String> map = new HashMap<String, String>(); SharedPreferences preferences = context.getSharedPreferences("person", Context.MODE_PRIVATE); //getString的第一个参数时保存参数时的参数名称,第二个值是没有这个值时返回的默认值。 map.put("name", preferences.getString("name", "")); map.put("age", String.valueOf(preferences.getInt("age", 0))); return map; }}
因为SharedPreferences背后是使用xml文件保存数据,getSharedPreferences(name,mode)方法的第一个参数用于指定该文件的名称,名称不用带后缀,后缀会由Android自动加上。方法的第二个参数指定文件的操作模式,共有四种操作模式,这四种模式前面介绍使用文件方式保存数据时已经讲解过。如果希望SharedPreferences背后使用的xml文件能被其他应用读和写,可以指定Context.MODE_WORLD_READABLE和Context.MODE_WORLD_WRITEABLE权限。
另外Activity还提供了另一个getPreferences(mode)方法操作SharedPreferences,这个方法默认使用当前类不带包名的类名作为文件的名称。
2、如何访问其他应用Preference:
如果访问其他应用中的Preference,前提条件是:该preference创建时指定了Context.MODE_WORLD_READABLE或者Context.MODE_WORLD_WRITEABLE权限。如:有个<package name>为com.example.fileoperator的应用使用下面语句创建了preference。
getSharedPreferences("person", Context.MODE_WORLD_READABLE);
其他应用要访问上面应用的preference,首先需要创建上面应用的Context,然后通过Context 访问preference ,访问preference时会在应用所在包下的shared_prefs目录找到preference :
Context otherAppsContext = createPackageContext("com.example.fileoperator", Context.CONTEXT_IGNORE_SECURITY);SharedPreferences sharedPreferences = otherAppsContext.getSharedPreferences("person", 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学习笔记_8_使用SharedPreferences存储数据
- Android学习笔记(八)-使用SharedPreferences进行数据存储
- android 数据存储SharedPreferences 学习笔记
- Android笔记使用SharedPreferences进行数据存储
- Android学习笔记十二.Android数据存储与IO.SharedPreferences
- Android 使用SharedPreferences数据存储
- Android学习笔记之数据的共享存储SharedPreferences
- android学习笔记5 - SharedPreferences数据存储技术
- Android学习笔记-数据存储-SharedPreferences和File
- android学习笔记——SharedPreferences数据存储
- Android编程学习笔记 之 SharedPreferences数据存储
- Android入门笔记 - 数据存储 - SharedPreferences
- Android笔记之数据存储(SharedPreferences)
- 【笔记】Android数据存储——SharedPreferences
- 【Android】安卓学习笔记之使用SharedPreferences 读写数据
- Android学习之SharedPreferences数据存储
- Hello Android - 使用SharedPreferences存储数据
- Android中使用SharedPreferences进行数据存储
- css块元素的 display 属性 inline-block 的应用
- javascript ActiveXObject FileSystemObject 对象,创建、复制、删除、读取文件等
- java GZIP 压缩数据
- Android学习笔记_6_保存文件到SDCard
- Android学习笔记_7_使用 sax 或者 dom 或者 pull 解析XML文件
- Android学习笔记_8_使用SharedPreferences存储数据
- Android学习笔记_9_SQLiteOpenHelper对象之数据库增删改查以及事务回滚操作
- 区间选点问题(贪心)
- Android学习笔记_10_ContentProvider内容提供者的使用
- Android学习笔记_11_ListView控件使用
- Android学习笔记_12_网络通信之从web获取资源数据到Android
- Android学习笔记_13_网络通信之多个上传文件
- Android学习笔记_14_对JSON格式数据的处理
- FileUpload框架实现文件上传(多个文件)和下载