SharedPreferences

来源:互联网 发布:安装vs2015网络 编辑:程序博客网 时间:2024/06/02 06:22

       对于这个接口,大家肯定很熟悉,一定经常用到,怎么翻译一下呢,共享参数,共享设置,共享偏好,共享内容,我觉得共享内容比较形象。

      Interface for accessing and modifying preference data returned by getSharedPreferences(String, int). For any particular set of preferences, there is a single instance of this class that all clients share. Modifications to the preferences must go through an SharedPreferences.Editor object to ensure the preference values remain in a consistent state and control when they are committed to storage. Objects that are returned from the various get methods must be treated as immutable by the application.

Note: This class does not support use across multiple processes.

     这是android api里对它的解释,我大致翻译一下哈。

     它是一个访问和修改共享数据的接口,通过getSharedPreferences(String, int)获取得到的,对于所有的内容,会有一个这个类的单例,让所有的用户共享用。如果想要修改共享的内容必须通过SharedPreferences.Editor这个对象,以确保所有的共享内容保持在一致不变的状态和控制中当它们被存储起来的时候。通过各种方式返回的对象必须是被应用保持不变的不可改变的。

      下面解释一下getSharedPreferences(String,int)里面的两个参数

   String: Desired preferences file. If a preferences file by this name does not exist, it will be created when you retrieve an editor (SharedPreferences.edit()) and then commit changes (Editor.commit())

      想得到的共享内容文件的名字,如果这个名字的共享内容不存在的话,就会被创建当你检索一个编辑器的时候,然后通过commit()提交。

    int: Operating mode. Use 0 or MODE_PRIVATE for the default operation.

     操作模式,默认使用0或者 MODE_PRIVATE

   MODE_PRIVATE File creation mode: the default mode, where the created file can only be accessed by the calling application (or all applications sharing the same user ID).创建文件时的模式:默认的模式,这种模式创建的文件只能被当前的使用的应用或者有相同共享user id的应用存取访问。   

      下面介绍一下它的用法

      它有两个内部类:

      SharedPreferences.Editor(它是一个在SharedPreferences中用来修改值的接口)

      SharedPreferences.OnSharedPreferenceChangeListener(它是一个当共享的内容发生改变的时候会有一个回调被调用的接口定义)

     它有以下几个公共方法

      1  contains(String key) 抽象方法,返回值是boolean :检查内容中是否包含另一个内容

   2 edit() 抽象方法,返回值是SharedPreferences.Editor的对象:为这些内容创建一个编辑器,通过它你可以在内容中做修改(添加内容,删除内容,修改内容等),然后把这些改变提交给SharedPreferences对象。

   SharedPreferences.Editor一些常用的公共方法:edit.putString(int, float,boolean ..)(key, value) ;edit.remove(key,value);edit.clear();最后一定要加上edit.apply();

   3 getAll() 抽象方法,返回值是map<String,?>集合:检索共享内容中所有的值

   4 getStringSet(String key, Set<String> defValues) 抽象方法,返回值是Set<String>集合:从共享内容中检索一组字符串类型的值

   5 getBoolean(String key, boolean defValue),getFloat(String key, float defValue),getInt(String key, int defValue),getLong(String key, long defValue),getString(String key, String defValue),这些方法都是抽象方法,返回的值是对应的类型的值:都是从共享内容中检索对应类型的值。

   6 registerOnSharedPreferenceChangeListener(SharedPreferences.OnSharedPreferenceChangeListenerlistener) 抽象方法,无返回值:注册一个回调,当一个内容发生改变的时候,就会调用这个回调。

   7 unregisterOnSharedPreferenceChangeListener(SharedPreferences.OnSharedPreferenceChangeListenerlistener) 抽象方法,无返回值:注销一个先前的当内容发生改变就会触发的回调。

       下一篇文章会使用SharedPreferences,okhttp,picasso,gson来进行简单的离线缓存。

                       


     


1 0
原创粉丝点击