Android中的SharedPreferences的小结

时间:2021-05-09 05:29:34

SharedPreferences

其实Android中的SharedPreferences不适合存储那些比较重要的数据

  • SharedPreferences只能储存Java基础数据类型
  • 在应用当中是数据共享的,没有什么安全性,在内部结构当中是以Map key-Value存在的、
  • 最后一点这个东西太简单了,好吧

首先说下SharedPreferences中的数据对应用是透明的,*限查看的形式
我们用到的SharedPreferences用的最多的比如说,存取一些简单的数据,String类型的用户名,不需要隐藏起来的数据等。

来一个例子介绍一下SharedPreferences

    SharedPrefereneces sp = getSharedPreferences("sp_demo", MODE_READABLE);

因为SharedPreferences本身是一个接口,所以要启动一个SharedPreferences必须通过Context提供的getSharedPreferences方法,在上面的第二个参数表示的意思是说数据的权限:

Context.MODE_PRIVATE :数据只能被本程序读和写。
Context.MODE_WORLD_READABLE :数据可以被其他程序读取,但是不能被写入
Context.MODE_WORLD_WRITABLE :数据可以被其他程序读、写

再来看下利用SharedPreferences存取数据的方式:

SharedPrefereneces sp = getSharedPreferences("sp_demo", MODE_WORLD_READABLE);
Editor editor = sp.edit();
editor.putString("KEY", "VALUE");

注意,因为SharedPreferences的核心是Map,而Editor里面也有一个Map缓存,而且每次edit()都返回一个Editor对象,所以在使用SharedPreferences的时候必须创建一个Editor对象,然后再利用这个对象来存储数据。

再来说下取数据,对应于putXxx方法,取数据的方法就是简单的getXxx了,提供一个对应的Key就能得到Value
在SharedPreferences中还有几个方法需要说明一下可能会用到:

boolean contains(String key) :用来判断是否包含特定Key的数据
abstract Map<String, ?> getAll() :获取SharedPreferences所有的Key-Value对

还有一个方法慎用

SharedPreferences.Editor clear() 清楚SharedPreferences内的所有数据!

好了就介绍到这边吧~~~~