Android的数据存储之一------SharedPreferences
下面将介绍下Android的数据存储,Android提供了5种方式存储数据:
1.SharedPreferences存储数据;
2.文件存储数据;
3.SQLite数据库存储数据;
4.使用ContentProvider存储数据;
5. 网络存储数据;
今天我先介绍下最简单的SharedPreferences存储数据;
SharedPreferences是Android平台上一个轻量级的存储类,主要是保存一些常用的配置比如窗口状态,一般在Activity中 重载窗口状态onSaveInstanceState保存一般使用SharedPreferences完成,它提供了Android平台常规的Long长 整形、Int整形、String字符串型的保存,它是什么样的处理方式呢?
SharedPreferences类似过去Windows系统上的ini配置文件,但是它分为多种权限,可以全局共享访问,android最 终是以xml方式来保存(在Android系统中,这些信息以XML文件的形式保存在/data/data/PACKAGE_NAME /shared_prefs 目录下。),整体效率来看不是特别的高,对于常规的轻量级而言比SQLite要好不少,如果真的存储量不大可以考虑自己定义文件格式。xml 处理时Dalvik会通过自带底层的本地XML Parser解析,比如XMLpull方式,这样对于内存资源占用比较好。
用于访问和修改getSharedPreferences(String, int)返回的preference data的一个接口。对于任何一组特殊的preferences,所有的客户端共享一个此类单独的实例。
修改Preferences必须通过一个SharedPreferences.Editor对象,以确保当他们提交存储数据的操作时,preference值保持一致的状态。
注意:
1》当前此类不支持多线程访问。
2》使用SharedPreferences是有些限制的:只能在同一个包内使用,不能在不同的包之间使用。
SharedPreferences的步骤:
1.Call edit() to get a SharedPreferences.Editor.
2.Add values with methods such as putBoolean() and putString().
3.Commit the new values with commit()
上代码:
public class SharedPreferencesActivity extends Activity { private final static String SETTING = "potato"; private Button mBtnSave; private Button mBtnShow; private EditText mEditViewName; private EditText mEditViewAge; private TextView mTextViewResult; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); mBtnSave = (Button) findViewById(R.id.btnSave); mBtnShow = (Button) findViewById(R.id.btnShow); mEditViewName = (EditText) findViewById(R.id.editName); mEditViewAge = (EditText) findViewById(R.id.editAge); mTextViewResult = (TextView)findViewById(R.id.txtResult); mBtnSave.setOnClickListener(listener); mBtnShow.setOnClickListener(listener); } /** * 事件监听器 */ private OnClickListener listener = new OnClickListener() { @Override public void onClick(View v) { SharedPreferences pres = SharedPreferencesActivity.this. // 注1 getSharedPreferences(SETTING, Context.MODE_PRIVATE); switch (v.getId()) { // 保存数据 case R.id.btnSave: Editor editor = pres.edit(); // 注2 editor.putString("name", mEditViewName.getText().toString()); editor.putInt("age", Integer.valueOf(mEditViewAge.getText().toString())); editor.commit(); Toast.makeText(SharedPreferencesActivity.this, "保存成功", Toast.LENGTH_LONG).show(); break; // 显示数据 case R.id.btnShow: String name = pres.getString("name", "NO"); // 注3 int age = pres.getInt("age", 0); String bir = pres.getString("bir", "NO"); mTextViewResult.setText("Name="+name+";age="+age+";bir="+bir); break; } } }; }
注1:
SharedPreferences pres = SharedPreferencesActivity.this. // 注1 getSharedPreferences(SETTING, Context.MODE_PRIVATE);通过名称,得到一个SharedPreferences,顾名思义,这个Preferences是共享的,共享的范围据现在同一个Package中,这里 面说所的Package和Java里面的那个Package不同,貌似这里面的Package是指在AndroidManifest.xml文件中的Package属性值。
第二参数:
Context.MODE_PRIVATE:为默认操作模式,代表该文件是私有数据,只能被应用本身访问,在该模式下,写入的内容会覆盖原文件的内容,如果想把新写入的内容追加到原文件中。可以使用Context.MODE_APPEND
Context.MODE_APPEND:模式会检查文件是否存在,存在就往文件追加内容,否则就创建新文件。
Context.MODE_WORLD_READABLE和Context.MODE_WORLD_WRITEABLE用来控制其他应用是否有权限读写该文件。
MODE_WORLD_READABLE:表示当前文件可以被其他应用读取;
MODE_WORLD_WRITEABLE:表示当前文件可以被其他应用写入。
注2:
注3:
存储和取值的过程这有点像HashMap但是比HashMap更具人性化,getXXX(Object key,Object defualtReturnValue),
第二个参数是当你所要的key对应没有时候返回的值(所谓的默认值)。这就省去了很多逻辑判断。。。。
editor.commit();这个一定要调用,因为这样才能提交修改的内容,否则如果赋值过程中数据类型错误,抛出异常,那就数据就不保存了,但是有了commit(),就不会出现这样问题。。。。
有问题请留言。。。。。
Android的数据存储之一------SharedPreferences相关推荐
- Android常用数据存储之SharedPreferences存储和读取用法分享
一:Android常用数据存储,一共有五种方式,分别是 1.SharedPreferences储存数据, 2.文件存储 3.SQLite数据存储 4.ContentProvider储存数据 5.网络存 ...
- Android 数据存储之SharedPreferences存储小记
前言 Android的数据存储机制中还提供了SharedPreferences,SharedPreferences是这其中最容易理解的数据存储技术,采用键值对的方式进行存储,而且支持存储多中数据类型. ...
- 深入剖析Android中最简单的数据存储方式:SharedPreferences
目录 一. 使用SharedPreferences存储数据 二. 数据的存储位置和格式 三.存储数据的获取 四. 存取复杂类型的数据 五. 设置数据文件的访问权限 Hello,你好呀,我是灰小猿,一个 ...
- 005 Android之数据存储
文章目录 Android文件系统 Android文件的访问权限 文件访问权限实例 数据存储方式 内部存储 内部存储实例 外部存储 Shared Preferences Shared Preferenc ...
- android 储存方案,Android本地数据存储方案(一)
Android系列的博客主要是记录和总结自己在平时学习之中遇到的问题,方便日后用到时查看,同时也希望对读者有所帮助.不足之处,欢迎指正~ 在说到Android数据存储之前,先提一下数据持久化,所谓数据 ...
- android常用的存储方式,Android 常见数据存储方式
Android 常见数据存储方式有以下三种:1.使用SharedPreferences存储数据:其本质就是一个xml文件,可以保存字符串.布尔值.基础数据.集合等数据.常用于存储较简单的参数设置. 2 ...
- 基于AndroidStudio的数据存储(SharedPreferences存储)的简单应用
基于AndroidStudio的数据存储(SharedPreferences存储)的简单应用 前言 一.登录界面设计 二.MainActivity_10_5 中 前言 在手机的登录界面输入用户名和密码 ...
- Android之数据存储-刘志远-专题视频课程
Android之数据存储-17742人已学习 课程介绍 本课程介绍了Android中几种数据存储方式,让大家对Android中的数据存储一个系统的认识 课程收益 本课程介绍了A ...
- android app数据存储,基于Android开发的APP数据存储研究
谢原武+龙文 摘要: 作为一个完整的应用程序,数据存储操作是必不可少的.Android系统一共提供了四种数据存储方式分别为File文件存储.Shared Preferences存储.ContentPr ...
最新文章
- SIGSEGV 和 SIGBUS gdb看汇编
- 爬虫书籍-Python网络爬虫权威指南OCR库 NLTK 数据清洗 BeautifulSoup Lambda表达式 Scrapy 马尔可夫模型
- mongo mysql 条件查询效率_mongodb查询条件对查询效率的影响
- 并查集——村村通(洛谷 P1536)
- sprintf 详解
- python 极速后台开发框架_基于FastAdmin快速搭建后台管理系统
- JVM笔记——技术点汇总
- 如何使用 Mac 中的“信息”?
- 配置WindowsMobile仿真器上网
- 没有配置任何软件的计算机上能够运行,禁止电脑安装任何软件
- 三星note3smn9005怎么放SIM卡
- 北大30岁女博导获2019 IEEE青年成就奖,全球仅三人,深耕微纳电子、神经形态计算
- 虚拟机macos系统共享文件
- 7个实用的Python自动化代码,别再重复造轮子了!
- android10颜色,首款采用10bit屏幕即将发布,你了解色深吗?
- 如何用python批量识别图片上的文字(二)
- bt面板从7.1升级到7.5.2之后网络挂了
- 如何掌控自己的时间和生活
- mvn将本地jar文件导入本地maven库中
- java内省的意思_java内省和反射的区别
热门文章
- 数据库session分析表
- ssm体育用品库存管理毕业设计-附源码211712
- WPf控件模板缺省样式
- 【H5+ Quick-cocos2dx整合】之iOS 三 集成Quick-Cocos2dx SDK
- time gmtime localtime strftime 时间函数
- 中国历代职官科举制度
- RGB、Lab、YUV、HSI、HSV等颜色空间的区别
- [Audacity][编译][步骤三]Audacity 相关源码下载
- 《Neo4j权威指南》简介,求伯君、周鸿袆、胡晓峰、周涛等大咖隆重推荐
- HTML_给文本加下划线