美文网首页
单例模式SharedPreferences

单例模式SharedPreferences

作者: 7i昂 | 来源:发表于2019-10-20 11:56 被阅读0次
​
public class SharedPreferencesUtils {
    private SharedPreferences share;
    private SharedPreferences.Editor editor;
    private String SHARED_NAME = "spname";//sp的文件名 自定义
 
 
//MyAPP.getContext() 是你的Application里面的一个Context
private SharedPreferencesUtils() {
    share = MyApp.getContext().getSharedPreferences(SHARED_NAME, Context.MODE_PRIVATE);
    editor = share.edit();
}
 
/** 
* 单例模式
*/
private static SharedPreferencesUtils instance;//单例模式 双重检查锁定
public static SharedPreferencesUtils getInstance() {
    if (instance == null) {
        synchronized (SharedPreferencesUtils.class) {
            if (instance == null) {
                instance = new SharedPreferencesUtils();
            }
        }
    }
    return instance;
}
 
​
 
/**
 * ------- Int ---------
 */
public void putInt(String spName, int value) {
    editor.putInt(spName, value);
    editor.commit();
}
 
public int getInt(String spName, int defaultvalue) {
    return share.getInt(spName, defaultvalue);
}
 
/**
 * ------- String ---------
 */
public void putString(String spName, String value) {
    editor.putString(spName, value);
    editor.commit();
}
 
public String getString(String spName, String defaultvalue) {
    return share.getString(spName, defaultvalue);
}
 
public String getString(String spName) {
    return share.getString(spName, "");
}
 
 
/**
 * ------- boolean ---------
 */
public void putBoolean(String key, boolean value) {
    editor.putBoolean(key, value);
    editor.commit();
}
 
public boolean getBoolean(String key, boolean defValue) {
    return share.getBoolean(key, defValue);
}
 
/**
 * ------- float ---------
 */
public void putFloat(String key, float value) {
    editor.putFloat(key, value);
    editor.commit();
}
 
public float getFloat(String key, float defValue) {
    return share.getFloat(key, defValue);
}
 
 
/**
 * ------- long ---------
 */
public void putLong(String key, long value) {
    editor.putLong(key, value);
    editor.commit();
}
 
public long getLong(String key, long defValue) {
    return share.getLong(key, defValue);
}
 
/**
 * 清空SP里所有数据 谨慎调用
 */
public void clear() {
    editor.clear();//清空
    editor.commit();//提交
}
 
/**
 * 删除SP里指定key对应的数据项
 *
 * @param key
 */
public void remove(String key) {
    editor.remove(key);//删除掉指定的值
    editor.commit();//提交
}
 
/**
 * 查看sp文件里面是否存在此 key
 *
 * @param key
 * @return
 */
public boolean contains(String key) {
    return share.contains(key);
}
//建议 所有的Key 以为常量的形式保存在此类里面
 
public static final String USER_NAME = "name";//例如
 
}
写入:
SharedPreferencesUtils.getInstance().putString(SharedPreferencesUtils.USER_NAME, "abcd");
取出:
SharedPreferencesUtils.getInstance().getString(SharedPreferencesUtils.USER_NAME);
SharedPreferencesUtils.getInstance().getString(SharedPreferencesUtils.USER_NAME,"1234");//如果不存在此Key,就返回1234

相关文章

  • 单例模式SharedPreferences

  • 第二章 IPC机制

    多进程会造成哪些问题① 静态成员和单例模式失效② 线程同步机制完全失效③ SharedPreferences 的可...

  • 【设计模式】单例模式

    单例模式 常用单例模式: 懒汉单例模式: 静态内部类单例模式: Android Application 中使用单例模式:

  • Android设计模式总结

    单例模式:饿汉单例模式://饿汉单例模式 懒汉单例模式: Double CheckLock(DCL)实现单例 Bu...

  • IPC进程间通信(开发艺术探索)

    使用多进程造成的问题 静态成员和单例模式完全失效 线程同步机制完全失效 SharedPreferences的可靠性...

  • 2018-04-08php实战设计模式

    一、单例模式 单例模式是最经典的设计模式之一,到底什么是单例?单例模式适用场景是什么?单例模式如何设计?php中单...

  • 设计模式之单例模式详解

    设计模式之单例模式详解 单例模式写法大全,也许有你不知道的写法 导航 引言 什么是单例? 单例模式作用 单例模式的...

  • Telegram开源项目之单例模式

    NotificationCenter的单例模式 NotificationCenter的单例模式分析 这种单例模式是...

  • 单例模式Java篇

    单例设计模式- 饿汉式 单例设计模式 - 懒汉式 单例设计模式 - 懒汉式 - 多线程并发 单例设计模式 - 懒汉...

  • IOS单例模式的底层原理

    单例介绍 本文源码下载地址 1.什么是单例 说到单例首先要提到单例模式,因为单例模式是单例存在的目的 单例模式是一...

网友评论

      本文标题:单例模式SharedPreferences

      本文链接:https://www.haomeiwen.com/subject/jfgomctx.html