下面将介绍下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相关推荐

  1. Android常用数据存储之SharedPreferences存储和读取用法分享

    一:Android常用数据存储,一共有五种方式,分别是 1.SharedPreferences储存数据, 2.文件存储 3.SQLite数据存储 4.ContentProvider储存数据 5.网络存 ...

  2. Android 数据存储之SharedPreferences存储小记

    前言 Android的数据存储机制中还提供了SharedPreferences,SharedPreferences是这其中最容易理解的数据存储技术,采用键值对的方式进行存储,而且支持存储多中数据类型. ...

  3. 深入剖析Android中最简单的数据存储方式:SharedPreferences

    目录 一. 使用SharedPreferences存储数据 二. 数据的存储位置和格式 三.存储数据的获取 四. 存取复杂类型的数据 五. 设置数据文件的访问权限 Hello,你好呀,我是灰小猿,一个 ...

  4. 005 Android之数据存储

    文章目录 Android文件系统 Android文件的访问权限 文件访问权限实例 数据存储方式 内部存储 内部存储实例 外部存储 Shared Preferences Shared Preferenc ...

  5. android 储存方案,Android本地数据存储方案(一)

    Android系列的博客主要是记录和总结自己在平时学习之中遇到的问题,方便日后用到时查看,同时也希望对读者有所帮助.不足之处,欢迎指正~ 在说到Android数据存储之前,先提一下数据持久化,所谓数据 ...

  6. android常用的存储方式,Android 常见数据存储方式

    Android 常见数据存储方式有以下三种:1.使用SharedPreferences存储数据:其本质就是一个xml文件,可以保存字符串.布尔值.基础数据.集合等数据.常用于存储较简单的参数设置. 2 ...

  7. 基于AndroidStudio的数据存储(SharedPreferences存储)的简单应用

    基于AndroidStudio的数据存储(SharedPreferences存储)的简单应用 前言 一.登录界面设计 二.MainActivity_10_5 中 前言 在手机的登录界面输入用户名和密码 ...

  8. Android之数据存储-刘志远-专题视频课程

    Android之数据存储-17742人已学习 课程介绍         本课程介绍了Android中几种数据存储方式,让大家对Android中的数据存储一个系统的认识 课程收益     本课程介绍了A ...

  9. android app数据存储,基于Android开发的APP数据存储研究

    谢原武+龙文 摘要: 作为一个完整的应用程序,数据存储操作是必不可少的.Android系统一共提供了四种数据存储方式分别为File文件存储.Shared Preferences存储.ContentPr ...

最新文章

  1. SIGSEGV 和 SIGBUS gdb看汇编
  2. 爬虫书籍-Python网络爬虫权威指南OCR库 NLTK 数据清洗 BeautifulSoup Lambda表达式 Scrapy 马尔可夫模型
  3. mongo mysql 条件查询效率_mongodb查询条件对查询效率的影响
  4. 并查集——村村通(洛谷 P1536)
  5. sprintf 详解
  6. python 极速后台开发框架_基于FastAdmin快速搭建后台管理系统
  7. JVM笔记——技术点汇总
  8. 如何使用 Mac 中的“信息”?
  9. 配置WindowsMobile仿真器上网
  10. 没有配置任何软件的计算机上能够运行,禁止电脑安装任何软件
  11. 三星note3smn9005怎么放SIM卡
  12. 北大30岁女博导获2019 IEEE青年成就奖,全球仅三人,深耕微纳电子、神经形态计算
  13. 虚拟机macos系统共享文件
  14. 7个实用的Python自动化代码,别再重复造轮子了!
  15. android10颜色,首款采用10bit屏幕即将发布,你了解色深吗?
  16. 如何用python批量识别图片上的文字(二)
  17. bt面板从7.1升级到7.5.2之后网络挂了
  18. 如何掌控自己的时间和生活
  19. mvn将本地jar文件导入本地maven库中
  20. java内省的意思_java内省和反射的区别

热门文章

  1. 数据库session分析表
  2. ssm体育用品库存管理毕业设计-附源码211712
  3. WPf控件模板缺省样式
  4. 【H5+ Quick-cocos2dx整合】之iOS 三 集成Quick-Cocos2dx SDK
  5. time gmtime localtime strftime 时间函数
  6. 中国历代职官科举制度
  7. RGB、Lab、YUV、HSI、HSV等颜色空间的区别
  8. [Audacity][编译][步骤三]Audacity 相关源码下载
  9. 《Neo4j权威指南》简介,求伯君、周鸿袆、胡晓峰、周涛等大咖隆重推荐
  10. HTML_给文本加下划线