zoukankan      html  css  js  c++  java
  • SharedPreferences详解

    我们在开发软件的时候,常需要向用户提供软件参数设置功能,例如我们常用的微信,用户可以设置是否允许陌生人添加自己为好友.

    对于软件配置参数的保存,

    如果是在window下通常我们会采用ini文件进行保存.

    如果是J2EE下面,我们会采用properties属性文件或者xml进行保存.

    在我们的Android应用中又适合采用什么方式保存软件配置参数呢?

    Android平台给我们提供了一个SharedPreferences类,它是一个轻量级应用程序内部轻量级的存储方案,特别适合用于保存软件配置参数,

    比如boolean,int,float,long,String等数据.使用SharedPreferences保存数据,

    其实质是采用了xml文件存放数据,路径为:/data/data/<package name>/shared_prefs.

    获取SharedPreferences的两种方式:
    1 调用Context对象的getSharedPreferences()方法
    2 调用Activity对象的getPreferences()方法
    两种方式的区别:
    调用Context对象的getSharedPreferences()方法获得的SharedPreferences对象可以被同一应用程序下的其他组件共享.
    调用Activity对象的getPreferences()方法获得的SharedPreferences对象只能在该Activity中使用.
     
    SharedPreferences的四种操作模式:
    Context.MODE_PRIVATE
    Context.MODE_APPEND
    Context.MODE_WORLD_READABLE
    Context.MODE_WORLD_WRITEABLE
     
    Context.MODE_PRIVATE:为默认操作模式,代表该文件是私有数据,只能被应用本身访问,在该模式下,写入的内容会覆盖原文件的内容
    Context.MODE_APPEND:模式会检查文件是否存在,存在就往文件追加内容,否则就创建新文件.
    Context.MODE_WORLD_READABLE和Context.MODE_WORLD_WRITEABLE用来控制其他应用是否有权限读写该文件.
    MODE_WORLD_READABLE:表示当前文件可以被其他应用读取.
    MODE_WORLD_WRITEABLE:表示当前文件可以被其他应用写入.
     
    将数据保存至SharedPreferences:
    SharedPreferences preferences=getSharedPreferences("user",Context.MODE_PRIVATE);
    Editor editor=preferences.edit();
    String name="xixi";
    String age="22";
    editor.putString("name", name);
    editor.putString("age", age);
    editor.commit();
     
    从SharedPreferences获取数据:
    SharedPreferences preferences=getSharedPreferences("user", Context.MODE_PRIVATE);
    String name=preferences.getString("name", "defaultname");   //使用getString方法获得value,注意第2个参数是value的默认值 
    String age=preferences.getString("age", "0");
  • 相关阅读:
    237. Delete Node in a Linked List
    430. Flatten a Multilevel Doubly Linked List
    707. Design Linked List
    83. Remove Duplicates from Sorted List
    160. Intersection of Two Linked Lists
    426. Convert Binary Search Tree to Sorted Doubly Linked List
    142. Linked List Cycle II
    类之间的关系
    初始化块
    明确类和对象
  • 原文地址:https://www.cnblogs.com/liaojie970/p/5829001.html
Copyright © 2011-2022 走看看