Android数据存储方式之——Shareprefences

一、引言

      SharePrefences是Android数据存储最常用的方式之一,本文着重介绍一下

二、SharePrefence

        SharePrefence是用来保存少量数据的方式,如保存程序配置信息等。SharePrefences的源码如下所示:

package android.content;

import java.util.Map;
import java.util.Set;


public interface SharedPreferences {
  
    public interface OnSharedPreferenceChangeListener {
  
        /*监听Shareprefences变化,当key变化时,做处理*/    
        void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key);
    }
    

    public interface Editor {

        /*用于存储数据的方法*/   
        Editor putString(String key, String value); 
        Editor putStringSet(String key, Set<String> values);
        Editor putInt(String key, int value);
        Editor putLong(String key, long value);
        Editor putFloat(String key, float value);
        Editor putBoolean(String key, boolean value);

        /*移除某一项*/
        Editor remove(String key);

        /*清空的方法*/    
        Editor clear();
        /*同步保存更改的方法*/
        boolean commit();
        /*异步保存到磁盘,原子提交,性能更高,不保证结果*/
        void apply();
    }

    /*获取所有的键值对*/
    Map<String, ?> getAll();

    /*取值的方法*/
    String getString(String key, String defValue); 
    Set<String> getStringSet(String key, Set<String> defValues);
    int getInt(String key, int defValue);
    long getLong(String key, long defValue);
    float getFloat(String key, float defValue);
    boolean getBoolean(String key, boolean defValue);
    /*判断是否包含某个key*/ 
    boolean contains(String key);
    
    /*编辑接口*/
    Editor edit();
    
    /*注册监听函数*/
    void registerOnSharedPreferenceChangeListener(OnSharedPreferenceChangeListener listener);
    
    /*注销监听看书*/
    void unregisterOnSharedPreferenceChangeListener(OnSharedPreferenceChangeListener listener);
}
可以看出Shareprefences是一个接口,提供了保存和读取数据的方法。同时可以看出Shareprefences只能存储基本数据,它的Key只能是String。

三、使用方法

     保存数据的方法,获取默认名称的Shareprefences,其名称是工程包名:

SharedPreferences sp=this.getPreferences(MODE_PRIVATE);
		SharedPreferences.Editor editor=sp.edit();
		editor.putString("username", "root");
		editor.commit();
    支持三种模式:

  • MODE_PRIVATE:只支持本程序读写
  • MODE_WORLD_READABLE:允许其它应用程序读
  • MODE_WORLD_WRITEABLE :允许其它应用程序写

      读取数据的方法:

SharedPreferences sp=this.getPreferences(MODE_PRIVATE);
String username=sp.getString("username", "error");
第二个参数为默认参数,即当sp中不存在username时,返回的字符串。

四、总结

       希望能结识更多的朋友,说的不全的地方,请大家指导。  





你可能感兴趣的:(Android数据存储方式之——Shareprefences)