Shared Preferences 数据存储
SharedPreferences类,它是一个轻量级的存储类,特别适合用于保存软件配置参数。
其背后是用xml文件存放数据,文件存放在/data/data/<package name>/shared_prefs目录下,一个简单的存储代码如下:
SharedPreferences sharedPreferences = getSharedPreferences("mysp", Context.MODE_PRIVATE); //私有数据
在上述目录下生成mysp.xml文件
如果你想要删除通过SharedPreferences产生的文件,可以通过以下方法:
File file= new File("/data/data/"+getPackageName().toString()+"/shared_prefs","mysp.xml");
if(file.exists())
file.delete();
public class SPUtil {
/**
* 获取sp对象
* @param context
* @return
*/
public static SharedPreferences getSharedPreferences(Context context) {
SharedPreferences sp = context.getSharedPreferences("config",
Context.MODE_PRIVATE);
return sp;
}
/**
* 从sp获取string值
* @param context
* @param key
* @return
*/
public static String getString(Context context, String key) {
SharedPreferences sp = getSharedPreferences(context);
String result = sp.getString(key, null);
return result;
}
/**
* 从sp获取int值
* @param context
* @param key
* @return
*/
public static int getInt(Context context, String key) {
SharedPreferences sp = getSharedPreferences(context);
int result = sp.getInt(key, 0);
return result;
}
/**
* 从sp获取boolean值
* @param context
* @param key
* @return
*/
public static boolean getBoolean(Context context, String key,
boolean defaultValue) {
SharedPreferences sp = getSharedPreferences(context);
boolean result = sp.getBoolean(key, defaultValue);
return result;
}
/**
* 存储数据到sp中,仅限于string int boolean
* @param context
* @param key
* @param value
*/
public static void put(Context context, String key, Object value) {
SharedPreferences sp = getSharedPreferences(context);
Editor edit = sp.edit();
if (value instanceof String) {
edit.putString(key, (String) value);
} else if (value instanceof Integer) {
edit.putInt(key, (Integer) value);
} else if (value instanceof Boolean) {
edit.putBoolean(key, (Boolean) value);
}
edit.commit();
}
/**
* 存储已读新闻id到sp中,
* @param context
* @param key
* @param List<Integer> ids
*/
public static void writeReadNews(Context context, String key,
List<Integer> ids) {
SharedPreferences sp = getSharedPreferences(context);
Editor edit = sp.edit();
StringBuffer sb = new StringBuffer();
for (int i = 0; i < ids.size(); i++) {
sb.append(ids.get(i) + ":");
}
// 去除最后一个":"
if (sb.length() > 0) {
sb.deleteCharAt(sb.length() - 1);
}
edit.putString(key, sb.toString());
edit.commit();
}
/**
* 存储显示新闻频道id到sp中,
* @param context
* @param key
* @param List<Integer> ids
*/
public static void writeShowNewsChannel(Context context, String key,
List<Integer> ids) {
SharedPreferences sp = getSharedPreferences(context);
Editor edit = sp.edit();
StringBuffer sb = new StringBuffer();
for (int i = 0; i < ids.size(); i++) {
sb.append(ids.get(i) + ":");
}
// 去除最后一个":"
if (sb.length() > 0) {
sb.deleteCharAt(sb.length() - 1);
}
edit.putString(key, sb.toString());
edit.commit();
}
/**
* 从sp获取已读新闻id集合
*
* @param context
* @param key
* @return ArrayList<Integer>
*/
public static ArrayList<Integer> getReadNewsIds(Context context, String key) {
SharedPreferences sp = getSharedPreferences(context);
String ids = sp.getString(key, null);
ArrayList<Integer> readIds = new ArrayList<Integer>();
if (ids != null) {
String[] split = ids.split(":");
for (int i = 0; i < split.length; i++) {
readIds.add(Integer.valueOf(split[i]));
}
}
return readIds;
}
}
Shared Preferences 数据存储的更多相关文章
- Android数据存储之Shared Preferences共享数据存储
Android数据存储之Shared Preferences共享数据存储 在Android中一共提供了4种数据存储方式,但是由于存储的这些数据都是其应用程序私有的,所以如果需要在其他应用程序中使用这些 ...
- 67.Android中的数据存储总结
转载:http://mp.weixin.qq.com/s?__biz=MzIzMjE1Njg4Mw==&mid=2650117688&idx=1&sn=d6c73f9f04d0 ...
- 从零開始学android<数据存储(1)SharedPreferences属性文件.三十五.>
在android中有五种保存数据的方法.各自是: Shared Preferences Store private primitive data in key-value pairs. 相应属性的键值 ...
- [安卓安全] 01.安卓本地数据存储:Shared Preferences安全风险浅析
*:first-child { margin-top: 0 !important; } body > *:last-child { margin-bottom: 0 !important; } ...
- Android数据存储:Shared Preferences
Android数据存储之SharedPreferences 在Android系统中提供了多种存储技术.通过这些存储技术可以将数据存储在各种存储介质上, Android 为数据存储提供了如下几种方式:1 ...
- Android开发7:简单的数据存储(使用SharedPreferences)和文件操作
前言 啦啦啦~大家好,又见面啦~ 本篇博文讲和大家一起完成一个需要注册.登录的备忘录的,一起学习 SharedPreferences 的基本使用,学习 Android 中常见的文件操作方法,复习 An ...
- Android 数据存储五种方式
1.概述 Android提供了5种方式来让用户保存持久化应用程序数据.根据自己的需求来做选择,比如数据是否是应用程序私有的,是否能被其他程序访问,需要多少数据存储空间等,分别是: ① 使用Shared ...
- Android数据存储(一)----SharedPreferences详解
一.Android数据的存储方式: Android系统一共提供了四种数据存储方式.分别是:SharePreference.SQLite.Content Provider和File:此外还有一种网络存储 ...
- Android开发-API指南-数据存储
Storage Options 英文原文:http://developer.android.com/guide/topics/data/data-storage.html 采集日期:2015-02-0 ...
随机推荐
- 为archlinux配置cron
cron的作用:cron可以用来周期性地自动执行一些命令. cron的实现:cron有很多实现版本,例如:cronie, dcron, fcron, bcron, vixie-cron,我安装的是 c ...
- java web sql注入测试(1)---概念概述
在进行java web 测试时,经常会忽略的测试种类就是sql注入测试,这类缺陷造成的原因是开发技术在这方面欠缺的表现,虽然不常见,但一旦有这类缺陷,就很因此对运营的数据造成很多不必要的损失,所以,还 ...
- wireshark抓包
ip.addr==IP地址(192.168.1.100)&& http
- 创建DirectInput接口对象说明---(void **)&m_pDI
读别人代码时遇到的,起初没明白过来这是怎么回事,后来忽然想明白了. if (FAILED(DirectInput8Create(appInstance, DIRECTINPUT_VERSION, II ...
- delphi注册/反注册OCX
uses ShellAPI; function ExecAndWait(const ExecuteFile, ParamString : string): boolean; var SEInfo: T ...
- FreeOnTerminate 的线程在线程管理类的Destroy释放时手工释放的问题
这个问题折腾了我整整一天. 有一个线程管理类,集中管理所有新建的线程, 线程统一在创建时标识 FreeOnTerminate 为 True. 因为有的线程是不限次循环的,所以在管理类最后 Destro ...
- xml、 Dao service 三层参数以及对应关系
=======service 调用dao用params.put(K,Value);将参数传入后台. BaseResponse response = new BaseResponse(); Map& ...
- SoupUI的使用
- 160920、springmvc上传图片不生成临时文件
springMVC上传图片时候小于10k不会再临时目录里面生成临时文件,需要增加一个配置 <property name="maxInMemorySize" value=&qu ...
- LR场景设置里的各参数解释
1.Start Vuser ep1: Strat 100 Vusers :2 every 00:00:15(HH:MM:SS) 解释: 场景总共要跑100个虚拟用户,每15秒启动2个虚拟用户Vuser ...