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