Android中SharedPreferences共享参数的封装

2018-07-09  本文已影响0人  随心随性_0a25

Android中存在五种数据存储方式:

一:SharedPreferences共享参数存储

二:SQLite数据存储

三:File文件存储

四:ContentProvider内容提供者

五:网络存储。

在项目中也是经常用到这几大存储方式来进行数据存储,项目中会不止一次的用到这些存储方式中的某一个或者某几个,要是每次用到的时候都去写一次,这不免很麻烦,代码也很不清晰,这个时候就需要对相应的方式进行自己的封装,让它能在项目中的任何时候都可以使用。接下来我就分享我在使用SharedPreferences的一些封装和对SharedPreferences的认识:

SharedPreferences的四种操作模式:

Context.MODE_PRIVATE:为默认操作模式,代表该文件是私有数据,只能被应用本身访问,在该模式下,写入的内容会覆盖原文件的内容

Context.MODE_APPEND:此模式会检查文件是否存在,存在就往文件追加内容,否则就创建新文件

Context.MODE_WORLD_READABLE和Context.MODE_WORLD_WRITEABLE用来控制其他应用是否有权限读写该文件

Context.MODE_WORLD_READABLE:当前文件可以被读取

Context.MODE_WORLD_WRITEABLE:当前文件可以被写入

public class SharedPreferencesUtils {private SharedPreferencesmPreferences;    private static SharedPreferencesUtilssharedPreferencesUtils;    private SharedPreferencesUtils(Context context) {if (mPreferences ==null) {mPreferences = context.getSharedPreferences("dong", 0);        }    }/**    * 获取单实例对象    */    public static SharedPreferencesUtilsgetInstance(Context context) {if (sharedPreferencesUtils ==null) {sharedPreferencesUtils =new SharedPreferencesUtils(context);        }return sharedPreferencesUtils;    }/**    * 存储String    */    public static void putString(SharedPreferencesUtils mPreferences, String key,                                String v) {        mPreferences.mPreferences.edit().putString(key, v).commit();    }/**    * 取String    */    public static StringgetString(Context context, String key) {return getInstance(context).mPreferences.getString(key, "");    }/**    * 存储String    */    public static void putString(Context context, String key, String v) {getInstance(context).mPreferences.edit().putString(key, v).commit();    }/**    * 取String    */    public static StringgetString(SharedPreferencesUtils mPreferences, String key) {return mPreferences.mPreferences.getString(key, "");    }/**    * 取int    */    public static int getInt(SharedPreferencesUtils mPreferences, String key) {return mPreferences.mPreferences.getInt(key, -1);    }/**    * 取int    */    public static int getInt(Context context, String key) {return getInstance(context).mPreferences.getInt(key, -1);    }/**    * 存储String    */    public static void putInt(SharedPreferencesUtils mPreferences, String key,                              int v) {        mPreferences.mPreferences.edit().putInt(key, v).commit();    }/**    * 存储String    */    public static void putInt(Context context, String key, int v) {        SharedPreferencesUtils.getInstance(context).mPreferences.edit().putInt(key, v).commit();    }/**    * 取Long    */    public static long getLong(Context context, String key) {return getInstance(context).mPreferences.getLong(key, -1);    }/**    * 存储String    */    public static void putLong(Context context, String key,                              long v) {getInstance(context).mPreferences.edit().putLong(key, v).commit();    }/**    * 存储String    */    public static void putLong(Context context, String key, String v) {long l =0;        try {            l = Long.parseLong(v);        }catch (NumberFormatException e) {            e.printStackTrace();        }getInstance(context).mPreferences.edit().putLong(key, l).commit();    }/**    * 取Long    */    public static long getLong(SharedPreferencesUtils mPreferences, String key) {return mPreferences.mPreferences.getLong(key, -1);    }/**    * 存储String    */    public static void putLong(SharedPreferencesUtils mPreferences, String key,                              long v) {        mPreferences.mPreferences.edit().putLong(key, v).commit();    }}

https://blog.csdn.net/qq_34942689/article/details/65633451

上一篇下一篇

猜你喜欢

热点阅读