持久化存储技术之SharedPreferences存储
来源:互联网 发布:淘宝生鲜都发空运吗 编辑:程序博客网 时间:2024/05/22 15:52
SharedPreferences是使用键值对的方式来存储数据的。这样在读取数据的时候就可以通过这个键把对应的值取出来。
优点:SharedPreferences是很轻量级的应用,使用起来也很方便、简洁。
缺点:存储数据类型比较单一(只有基本数据类型以及字符串),无法进行条件查询,只能在不复杂的存储需求下使用,比如保存配置信息等。
存储路径:/data/data/包名/shared_prefs 目录下一、将数据存储到SharedPreferences中
1.首先需要获取到SharedPreferences对象
Android中提供了三种方法获取该对象(一般用第一种就可以了)
(1)Context类中的getSharedPreferences()
此方法中接收两个参数,第一个参数用于指定SharedPreferences文件名称,如果指定的文件不存在则会创建一个。第二个参数用于指定操作模式,主要有两种模式供选择,MODE_PRIVATE仍然是默认的操作,表示只有当前应用程序才可以对这个SharedPreferences文件进行读写;MODE_MULTI_PROCESS则一般是用于会有多个进程中对同一个SharedPreferences文件进行读写的情况。
(2)Activity类中的getPreferences()方法
(3)PreferenceManager类中的getDefaultSharedPreferences()方法
2.调用SharedPreferences对象的edit()方法来获取一个SharedPreferences.Editor对象
3.向SharedPreferences.Editor对象中添加数据
4.调用commit()方法将添加的数据提交,从而完成数据的存储操作
private void saveDatasBySp() { //获取到SharedPreferences对象 SharedPreferences sp = getSharedPreferences("config",MODE_PRIVATE); //获取到SharedPreferences.Editor对象 SharedPreferences.Editor edit = sp.edit(); //向SharedPreferences.Editor对象中添加数据 edit.putString("name","xiaoming"); //提交数据 edit.commit();}二、从SharedPreferences中读取数据
1.和保存值的方式一样获取SharedPreferences对象
2.通过get()方法对存储的值进行读取
get()方法中接收两个参数,第一个参数是键,传入存储数据时使用的键就可以得到相应的值;第二个参数是默认值,即表示当出入的键找不到对应的值时,会以什么样的默认值进行返回。
public String getDatasBySp() { //获取到SharedPreferences对象 SharedPreferences sp = getSharedPreferences("config",MODE_PRIVATE); //通过键找值,默认返回空字符串 String name = sp.getString("name", ""); return name;}三、为了使用方便,我们一般会封装一个工具类
public class PrefUtils { public static final String PREF_NAME = "config"; public static void putBoolean(Context ctx, String key, boolean value) { SharedPreferences sp = ctx.getSharedPreferences(PREF_NAME, Context.MODE_PRIVATE); sp.edit().putBoolean(key, value).commit(); } public static boolean getBoolean(Context ctx, String key, boolean defValue) { SharedPreferences sp = ctx.getSharedPreferences(PREF_NAME, Context.MODE_PRIVATE); return sp.getBoolean(key, defValue); } public static void putString(Context ctx, String key, String value) { SharedPreferences sp = ctx.getSharedPreferences(PREF_NAME, Context.MODE_PRIVATE); sp.edit().putString(key, value).commit(); } public static String getString(Context ctx, String key, String defValue) { SharedPreferences sp = ctx.getSharedPreferences(PREF_NAME, Context.MODE_PRIVATE); return sp.getString(key, defValue); } public static void putInt(Context ctx, String key, int value) { SharedPreferences sp = ctx.getSharedPreferences(PREF_NAME, Context.MODE_PRIVATE); sp.edit().putInt(key, value).commit(); } public static int getInt(Context ctx, String key, int defValue) { SharedPreferences sp = ctx.getSharedPreferences(PREF_NAME, Context.MODE_PRIVATE); return sp.getInt(key, defValue); } //删除某个key public static void remove(Context ctx, String key) { SharedPreferences sp = ctx.getSharedPreferences(PREF_NAME, Context.MODE_PRIVATE); sp.edit().remove(key).commit(); }}
- 持久化存储技术之SharedPreferences存储
- Android持久化技术之SharedPreferences存储
- 持久化技术SharedPreferences存储
- 持久化存储技术之本地存储
- 6.1 持久化技术简介 & 6.2 文件存储&6.3 SharedPreferences
- 利用SharedPreferences(持久化技术)实现密码的存储功能
- 浅谈Android的三种持久化技术之SharedPreferences存储
- 持久化存储--2、SharedPreferences存储
- Android数据持久化之二:SharedPreferences 存储(上)
- Android数据持久化之二:SharedPreferences 存储(下)
- Android之数据持久化(SharedPreferences 存储)
- 持久化存储技术
- android--持久化技术之文件存储
- Android--持久化技术之文件存储
- 持久化技术之文件存储
- Android持久化技术之文件存储
- Android数据持久化存储-SharedPreferences
- #android#数据持久化--SharedPreferences存储
- 多态草稿
- (LeetCode) 338. Counting Bits
- STL库学习 参考大道至简(更新完毕)
- CyclicBarrier
- javascript:touch事件
- 持久化存储技术之SharedPreferences存储
- D3 GEO应用专题(一):绘制旋转的3D地球
- 搜索 J
- 第二十二天 http状态管理技术-cookies和session
- 机器学习adaboost实现
- 2017年河南省ACM省赛 Problem F: Binary to Prime
- C# Winform Chart控件使用
- 【集合类分析】LinkedHashMap
- Special equations ----(hdu4569)数学思维