SharePreferences概念
时间:2020-04-20
本文章向大家介绍SharePreferences概念,主要包括SharePreferences概念使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
概念
SharePreferences是一种轻量级的数据存储方式,它是以key-value的形式保存在 data/data/
需要注意的是,sharepreferences中的value值只能是float、int、long、boolean、String、StringSet 这些类型数据。
存储
SharePreferences.Editor editor =getSharedPreferences("data",MODE_PRIVATE).edit();
editor.putString("name","Tom");
editor.putString("age",28);
editor.putBoolean("married",false);
editor.commit();
MODE_PRIVATE:指定该sharepreferences中的数据只能被本应用程序读写MODE_APPEND:该文件的内容可以追加
需要注意的是commit()是将数据写入内存后同步提交到磁盘,而apply()将数据写入内存后会在一个新线程中异步提交到磁盘。
使用commit()提交会返回一个boolean来表明是否提交成功,apply()则没有返回值。
提交数据时,如果数据比较大,commit()方法会阻塞主线程造成界面卡顿;因此在不要求提交结果的情况下应尽量使用appley()方法提交。
读取
SharedPreference pref = getSharedPreferences("data",MODE_PRIVATE);
String name=pref.getInt("age",0);
boolean married =pref.getboolean("married",false);
注意:
读取的时候,读取的是内存中的数据,是静态数据。就算是删除文件,依然可以读取到,关机开机后就读取不到。
概念
注意事项
1.存入数据和删除数据时,一定要在最后使用editor.commit()或editor.apply()
2.方法提交数据获取数据的key值与存入数据的key值的数据类型要一致,否则查找不到
3.数据保存sharepreferences的key值时,应使用final常量保存,以免存储、删除时写出了。如:public static final String KEY = "name";
4.在一个页面中,尽量不要进行多次commit()和apply()操作,在不要求提交结果的情况下应尽量使用appley()
原文地址:https://www.cnblogs.com/aoximin/p/12737015.html
- 微信小程序与新零售相结合引流又出新方法啦!
- JAVA CDI 学习(2) - Scope 生命周期
- JAVA CDI 学习(3) - @Produces及@Disposes
- 3分钟带你学会git向github推送!
- JAVA CDI 学习(4) - @Alternative/@Default/@Any & Extension
- centos6.6 下安装mysql
- silverlight 4 tools for vs2010无法在vs2010 SP1上安装的解决办法
- find命令小结
- Python加圣诞帽
- 多次grep 没有看到输出
- java多线程 基础demo
- 详细解读Jquery各Ajax函数:$.get(),$.post(),$.ajax(),$.getJSON()
- mybatis 使用tips - 使用多个参数
- 从高的角度看自动化测试
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- HTTP对接方式
- 使用ShardingSphere 过程中遇到的关于spring boot 版本的问题
- 腾讯云TKE-Pod案例: 容器内crontab问题
- iOS音视频接入 - TRTC多人视频会议
- Spring系列 SpringMVC的请求与数据响应
- codeforces 1349A(数学)
- leetcode之找不同
- 太强了,这居然是19年双非本科开发一年的Android面筋!开发几年的老程序员自叹不如
- Kotlin Vocabulary | Reified: 类型擦除后再生计划
- WorkManager 在 Kotlin 中的实践
- ElasticSearch 集群分片内部原理
- 360webscan防注入脚本全面绕过
- JQuery 入门学习(完结)
- 由python端口转发脚本看asyncore模块
- emlog模板制作说明(一)