zoukankan      html  css  js  c++  java
  • SharePreferences概念

    概念

    SharePreferences是一种轻量级的数据存储方式,它是以key-value的形式保存在 data/data//shared_prefs 下的xml文件中。通常使用它来保存应用中的一些简单的配置信息,如用户名、密码、自定义参数的设置等。

    需要注意的是,sharepreferences中的value值只能是float、int、long、boolean、String、StringSet 这些类型数据。

    存储

    
     SharePreferences.Editor editor =getSharedPreferences("data",MODE_PRIVATE).edit();
     editor.putString("name","Tom");
     editor.putString("age",28);
     editor.putBoolean("married",false);
     editor.commit();
    

    MODE_PRIVATE:指定该sharepreferences中的数据只能被本应用程序读写MODE_APPEND:该文件的内容可以追加

    需要注意的是commit()是将数据写入内存后同步提交到磁盘,而apply()将数据写入内存后会在一个新线程中异步提交到磁盘。
    使用commit()提交会返回一个boolean来表明是否提交成功,apply()则没有返回值。
    提交数据时,如果数据比较大,commit()方法会阻塞主线程造成界面卡顿;因此在不要求提交结果的情况下应尽量使用appley()方法提交。
    

    读取

    
     SharedPreference pref = getSharedPreferences("data",MODE_PRIVATE);
     String name=pref.getInt("age",0);
     boolean married =pref.getboolean("married",false);
    

    注意:

    读取的时候,读取的是内存中的数据,是静态数据。就算是删除文件,依然可以读取到,关机开机后就读取不到。
    

    概念

    注意事项

    1.存入数据和删除数据时,一定要在最后使用editor.commit()或editor.apply()
    2.方法提交数据获取数据的key值与存入数据的key值的数据类型要一致,否则查找不到
    3.数据保存sharepreferences的key值时,应使用final常量保存,以免存储、删除时写出了。如:public static final String KEY = "name";
    4.在一个页面中,尽量不要进行多次commit()和apply()操作,在不要求提交结果的情况下应尽量使用appley()

  • 相关阅读:
    面试题--十进制转换成2进制
    c++基础--如何将函数作为参数传递
    面试题--完全二叉树的的最后一层的最右节点
    数据库原理--故障恢复
    数据库原理--事务并发控制
    数据库原理--事务(一)
    数据库原理--1nf 2nf 3nf
    数据库原理--外键和主键
    数据库原理--函数依赖和范式
    人人都有极客精神
  • 原文地址:https://www.cnblogs.com/aoximin/p/12737015.html
Copyright © 2011-2022 走看看