数据存储(一) SharedPreferences


一、数据存储的方式

        在android中,数据存储分为内部存储(Internal Storage)和外部存储(External Storage)。内部存储又分为SharedPreferences保存简单键值对数据,SQLite Databases(数据库)保存将结构化的数据,以及文件存储。

【内存存储和外部存储的区别】

1、内部存储始终可用,外部存储(主要指sdcard)不一定始终可用。

2、默认情况下,内部存储只有本应用可以访问。而外部存储分为共有目录和私有目录,其中共有目录属于全局可读写。

3、当应用被卸载时,内部存储数据会被删除,外部存储的私有目录会被删除。外部存储的共有目录中的数据会被保留。

       系统分配给应用的内部存储空间有限,对于大数据建议保留在外部存储中。



二、SharedPreferences

(一)概述

        SharedPreferences是Android提供的一种轻量级的存储机制,可以存储一些简单类型的数据,如boolean、int、float、long和String、Set。

        SharedPreferences使用Map数据结构来存储数据,以键值对的方式存储数据。

        实质是用xml文件存放数据,文件存放在/data/data//shared_prefs目录下。

数据存储(一) SharedPreferences_第1张图片

(二)SharedPreferences实例的获取

1、 Context类中的getSharedPreferences(String name, int mode)方法

         第一个参数用于指定SharedPreferences文件的名称,如果指定的不存在则会创建一个。

         第二个参数用于指定操作模式,主要有两种模式:Context.MODE_PRIVATE和Context.MODE_APPEND。对于SharedPreferences两种模式没有差别,一般使用MODE_PRIVATE。

               MODE_PRIVATE:默认操作模式,其值为0,表示只有当前的应用程序才可以对这个SharedPreferences文件进行读写。

              MODE_APPEND:模式会检查文件是否存在,存在就往文件追加内容,否则创建新文件。

              另外还有三种模式,主要用于跨进程的数据访问,建议使用ContentProvider。

2、Activity类中的getPreferences(int mode)方法,只接受一个操作模式参数。

3、PreferenceManager类中的getDefaultSharedPreferences()方法,它接收一个context参数,并自动使用当前应用程序的包名作为前缀来命名SharedPreferences文件。

(三)数据存储

1、调用SharedPreferences对象的edit()方法来获取一个SharedPreferences.Editor(内部类)对象;(SharedPerferences接口本身并没有提供写入数据的能力)

2、通过Editor的putXXX(key, value)方法向Editor对象中添加数据;

3、调用Editor的commit()方法提交数据,完成数据存储操作。

SharedPreferences.Editor  editor  =  sp.edit();

editor.putString("testKey", txt);

editor.commit();

【注意】在程序中的Key值最好定义成常量

(四)数据读取

        通过SharedPreferences对象的getXXX()可以获取对应的数据,getXXX()方法接收两个参数,第一个参数是键(存数据时使用的键名),第二个参数为默认值,即当找不到对应的键时返回该值。

sp.getString("testKey","");

(五)数据删除

       通过SharedPreferences.Editor对象实现数据的删除

1、清空所有数据,调用clear()

2、删除指定key对应数据,调用remove(String key)

editor.clear();

editor.remove("testKey");

editor.commit();

(六)判断sharedPerferences是否包含特定的key

        通过SharedPreferences对象,来判断是否包括指定key的数据

boolean contains(String key)

案例

网盘地址: http://pan.baidu.com/s/1o8rprxK


【练习】

1、封装SharedPreferences存储的工具类

2、应用程序首画面(闪屏画面)停留2秒钟,如果是首次运行,进入画面B(引导画面),否则进入画面C(主画面)

3、账号密码记忆功能

        初次运行进入登录画面,输入用户和密码。第二次运行进入登录画面,直接显示保存的用户名和密码。


你可能感兴趣的:(数据存储(一) SharedPreferences)