当前位置: 首页 > news >正文

SharedPreference使用

SharedPreference使用

一、介绍
SharedPreference是android数据存储的一种方式
是对一个key-value的存储
存储形式是xml
存储位置是data/data/package_naem/sf_name.xml
包:android.content.SharedPreferences
不支持跨多个进程使用

二、实例化方法
SharedPreference sp = getSharedPreference(“sf_name”, Activity.MODE_PRI_VATE);

三保存数据
SharedPreference.Editor editor = sp.edit();
editor.putString(“name”,”value);
editor.commit();

四、读取数据
String name = sf.getString(“name”, “default_value”);

五、SharedPreferencs数据四种操作模式
Context.MODE_PRIVATE为默认操作模式,代表该文件是私有数据,只能被应用本身访问,在该模式下,写入的内容会覆盖原文件的内容
Context.MODE_APPEND模式会检查文件是否存在,存在就往文件追加内容,否则就创建新文件.
Context.MODE_WORLD_PEADABLE表示当前文件可以被其他应用读取
Context.MODE_WORLD_WRITEABLE表示当前文件可以被其他应用写入

六、SharedPreferencs get方法

getAll()
getBoolean(String key, boolean defValue)
getFloat(String key, float defValue)
getInt(String key, int defValue)
getLong(String key, long defValue)
getString(String key, String defValue) 
getStringSet(String key, Set<String> defValue)

七、Editor put方法

putBoolean(String key, boolean value)
putFloat(String key, float value)
putInt(String key, int value)
putLong(String key, long value)
putString(String key, String value)
putStringSet(String key, Set<String> values)

八、SharedPreference跨应用使用(已经推荐使用了)

try {            
String PACKAGE_NAME = "android.jun.androidwidgetstudy";            
String SHAREDPREFERENCE_NAME = "";            
String PREF_NAME = "";                        

Context c = createPackageContext(PACKAGE_NAME, Context.CONTEXT_IGNORE_SECURITY);            
SharedPreferences sp = c.getSharedPreferences(SHAREDPREFERENCE_NAME,Context .MODE_WORLD_READABLE); //or   Context .MODE_WORLD_WRITEABLE         
sp.getString(PREF_NAME, "");        
} catch (PackageManager.NameNotFoundException e) {            
e.printStackTrace();        
}

相关文章:

  • Javaweb安全——Shiro漏洞利用
  • java基本微信小程序的高校科研管理系统 uniapp小程序
  • C++ 20 协程(一)
  • 小米手机抓取hci log
  • 【Java深入学习】并发常见方法的注意事项
  • 微信小程序开发入门与实战(数据监听)
  • 【论文阅读】提升的自动作文评分通过Prompt预测和匹配
  • JPA-Specification常用条件查询构造方式
  • 瑞吉外卖(19) - 新增套餐业务开发
  • Android 的定位分层架构
  • 基于docker搭建es集群
  • 2.可视化基础(上)
  • 解决Vue项目中ESLint和Prettier冲突问题[Vue.js项目实践: 新冠自检系统]
  • 【misc】buu-面具下的flag——zip伪加密+用NTFS流隐藏文件
  • java毕业设计企业安全与设备管理系统源码+lw文档+mybatis+系统+mysql数据库+调试
  • C++入门教程(10):for 语句
  • exports和module.exports
  • IP路由与转发
  • JS基础篇--通过JS生成由字母与数字组合的随机字符串
  • Rancher如何对接Ceph-RBD块存储
  • socket.io+express实现聊天室的思考(三)
  • Travix是如何部署应用程序到Kubernetes上的
  • 浮动相关
  • 力扣(LeetCode)56
  • 实习面试笔记
  • 项目实战-Api的解决方案
  • 异常机制详解
  • MPAndroidChart 教程:Y轴 YAxis
  • ​人工智能书单(数学基础篇)
  • #设计模式#4.6 Flyweight(享元) 对象结构型模式
  • $.type 怎么精确判断对象类型的 --(源码学习2)
  • (06)Hive——正则表达式
  • (C语言)编写程序将一个4×4的数组进行顺时针旋转90度后输出。
  • (C语言版)链表(三)——实现双向链表创建、删除、插入、释放内存等简单操作...
  • (done) ROC曲线 和 AUC值 分别是什么?
  • (附源码)springboot家庭财务分析系统 毕业设计641323
  • (附源码)springboot社区居家养老互助服务管理平台 毕业设计 062027
  • (附源码)springboot助农电商系统 毕业设计 081919
  • (蓝桥杯每日一题)平方末尾及补充(常用的字符串函数功能)
  • (一)Java算法:二分查找
  • (一)认识微服务
  • (原創) 如何使用ISO C++讀寫BMP圖檔? (C/C++) (Image Processing)
  • (转)VC++中ondraw在什么时候调用的
  • .Net Core webapi RestFul 统一接口数据返回格式
  • .NET Core 通过 Ef Core 操作 Mysql
  • .NET Framework杂记
  • .NET 解决重复提交问题
  • .NET 指南:抽象化实现的基类
  • .NET/C# 的字符串暂存池
  • .net反混淆脱壳工具de4dot的使用
  • .NET精简框架的“无法找到资源程序集”异常释疑
  • [ vulhub漏洞复现篇 ] Jetty WEB-INF 文件读取复现CVE-2021-34429
  • [ web基础篇 ] Burp Suite 爆破 Basic 认证密码
  • [04]Web前端进阶—JS伪数组
  • [Android Pro] Notification的使用