zoukankan      html  css  js  c++  java
  • Android开发之数据存储——SharedPreferences基础知识详解,饿补学会基本知识,开发者必会它的用法。

    一、数据存储选项:Data Storage ——Storage Options【重点】
    1、Shared Preferences
    Store private primitive data in key-value pairs.
    保存简单的键值对数据。
    2、Internal Storage
    Store private data on the device memory.
    在手机内存中保存不对外共享的信息。
    3、External Storage
    Store public data on the shared external storage.
    在外部存储设备上保存公共的数据信息。主要指保存在SDCard上。
    4、SQLite Databases
    Store structured data in a private database.
    将结构化的数据保存进数据库。
    5、Network Connection
    Store data on the web with your own network server.
    将数据保存到自己的远程服务器上。
    【备注:】
    内部存储空间十分有限,因而显得可贵,另外,它也是系统本身和系统应用程序主要的数据存储所在地,一旦内部存储空间耗尽,手机也就无法使用了。
    所以对于内部存储空间,我们要尽量避免使用。Shared Preferences和SQLite数据库都是存储在内部存储空间上的。内部存储一般用Context来获取和操作。
    getFilesDir()获取你app的内部存储空间,相当于你的应用在内部存储上的根目录。
    最容易混淆的是外部存储,如果说pc上区分出外部存储和内部存储的话,那么自带的硬盘算是内部存储,U盘或者移动硬盘算是外部存储,因此我们很容易带着这样的理解去看待安卓手机,认为机身固有存储是内部存储,而扩展的SDCard卡是外部存储。比如Nexus 4有16G的内部存储,普通消费者可以这样理解,但是安卓的编程中不能,这16GB仍然是外部存储。

    二、SharedPreferences:
    (一)、概念:
    SharedPreferences是Android系统提供的一个通用的数据持久化框架,用于存储和读取key-value类型的原始基本数据类型对,目前支持string、int、long、float、boolean等基本类型的存储,对于自定义的对象数据类型,无法使用SharedPreferences来存储。
    SharedPreferences主要用于存储系统的配置信息。例如上次登录的用户名,上次最后设置的配置信息(如:是否打开音效、是否使用振动,小游戏的玩家积分等)。当再次启动程序后依然保持原有设置。SharedPreferences用键值对方式存储,方便写入和读取。

    (二)、使用SharedPreferences的步骤:
    1、获取SharedPreferences对象;
    SharedPreferences本身是一个接口,无法直接创建实例,通过Context的getSharedPreferences(String name, int mode)方法来获取实例。
    该方法的第二个参数有以下三个值:【文件读写的操作模式】
    Context.MODE_PRIVATE: 指定该SharedPreferences的数据只能被本应用程序读、写;
    Context.MODE_APPEND:新内容追加到原内容后;
    Context.MODE_WORLD_READABLE: 指定 SharedPreferences数据能被其他应用程序读,但是不支持写;
    Context.MODE_WORLD_WRITEABLE: 指定 SharedPreferences数据能被其他应用程序读、写。会覆盖原数据。
    可以使用 + 连接这些权限。
    2、调用edit()方法获取SharedPreferences.Editor;
    3、通过SharedPreferences.Editor接口提供的put()方法对SharedPreferences进行更新;
    4、调用SharedPreferences.Editor的commit()方法,将更新提交到SharedPreferences中。

    因为SharedPreferences背后是使用xml文件保存数据,getSharedPreferences(name,mode)方法的第一个参数用于指定该文件的名称,名称不用带后缀,后缀会由Android自动加上。方法的第二个参数指定文件的操作模式,共有四种操作模式,

    这四种模式代表的含义为:

    Context.MODE_PRIVATE = 0
    Context.MODE_APPEND = 32768
    Context.MODE_WORLD_READABLE = 1
    Context.MODE_WORLD_WRITEABLE = 2

    Context.MODE_PRIVATE:为默认操作模式,代表该文件是私有数据,只能被应用本身访问,在该模式下,写入的内容会覆盖原文件的内容,如果想把新写入的内容追加到原文件中。可以使用Context.MODE_APPEND
    Context.MODE_APPEND:模式会检查文件是否存在,存在就往文件追加内容,否则就创建新文件。
    Context.MODE_WORLD_READABLE和Context.MODE_WORLD_WRITEABLE用来控制其他应用是否有权限读写该文件。
    MODE_WORLD_READABLE:表示当前文件可以被其他应用读取;MODE_WORLD_WRITEABLE:表示当前文件可以被其他应用写入。

    另外Activity还提供了另一个getPreferences(mode)方法操作SharedPreferences,这个方法默认使用当前类不带包名的类名作为文件的名称。

    程序员小冰博客:http://blog.csdn.net/qq_21376985 技术交流QQ986945193 微博:http://weibo.com/mcxiaobing
  • 相关阅读:
    正则表达式30分钟入门教程
    解读C#中的正则表达式1
    web开发技巧经验积累
    常用效果的实现(Javascript的子父页访问、函数调用)
    document.execCommand()编程
    把任意文件隐藏在一张图片里
    在C#中如何实现Form与Form之间的通信
    全国各个省市数据库
    对长时间装载的ASP.NET页如何在客户端浏览器中显进度
    关于UPC E条码的校验
  • 原文地址:https://www.cnblogs.com/mcxiaobing/p/5907364.html
Copyright © 2011-2022 走看看