首页 > 其他分享 >SettingsProvider 工具类

SettingsProvider 工具类

时间:2023-01-09 11:13:37浏览次数:39  
标签:instanceof mContext Settings defValue value key 工具 SettingsProvider

记录一下项目用到的工具类
/** * SettingsProvider对数据进行了分类,分别是Global、System、Secure三种类型,它们的区别如下: * Global:所有的偏好设置对系统的所有用户公开,第三方APP有读没有写的权限; * System:包含各种各样的用户偏好系统设置; * Secure:安全性的用户偏好系统设置,第三方APP有读没有写的权限。 */ public class DataUtil { private static volatile DataUtil dataUtil; private Context mContext; private DataUtil(Context mContext){ this.mContext = mContext; } public static DataUtil getInstance(Context context){ if(dataUtil == null){ synchronized (DataUtil.class){ if(dataUtil == null){ dataUtil = new DataUtil(context); } } } return dataUtil; } /** * 保存Global数据 * @param key * @param value */ public void putGlobalData(String key, Object value){ if(value instanceof String){ Settings.Global.putString(mContext.getContentResolver(), key, (String) value); }else if(value instanceof Integer){ Settings.Global.putInt(mContext.getContentResolver(), key, ((Integer) value).intValue()); }else if(value instanceof Long){ Settings.Global.putLong(mContext.getContentResolver(), key, ((Long) value).longValue()); }else if(value instanceof Boolean){ Settings.Global.putInt(mContext.getContentResolver(), key, ((Boolean) value).booleanValue()?1:0); }else{ throw new IllegalArgumentException("not support value type!"); } } /** * 获取Global数据 * @param key * @param defValue 默认值 */ public Object getGlobalData(String key,Object defValue){ if(defValue instanceof String){ String data = Settings.Global.getString(mContext.getContentResolver(), key); return data == null?defValue:data; }else if(defValue instanceof Integer){ return Settings.Global.getInt(mContext.getContentResolver(), key, ((Integer) defValue).intValue()); }else if(defValue instanceof Long){ return Settings.Global.getLong(mContext.getContentResolver(), key, ((Long) defValue).longValue()); }else if(defValue instanceof Boolean){ int intData = Settings.Global.getInt(mContext.getContentResolver(), key, ((Boolean) defValue).booleanValue()?1:0); return intData == 1?true:false; }else { throw new IllegalArgumentException("not support value type!"); } } /** * 保存System数据 * @param key * @param value */ public void putSystemData(String key, Object value){ if(value instanceof String){ Settings.System.putString(mContext.getContentResolver(), key, (String) value); }else if(value instanceof Integer){ Settings.System.putInt(mContext.getContentResolver(), key, ((Integer) value).intValue()); }else if(value instanceof Long){ Settings.System.putLong(mContext.getContentResolver(), key, ((Long) value).longValue()); }else if(value instanceof Boolean){ Settings.System.putInt(mContext.getContentResolver(), key, ((Boolean) value).booleanValue()?1:0); }else{ throw new IllegalArgumentException("not support value type!"); } } /** * 获取System数据 * @param key * @param defValue 默认值 */ public Object getSystemData(String key,Object defValue){ if(defValue instanceof String){ String data = Settings.System.getString(mContext.getContentResolver(), key); return data == null?defValue:data; }else if(defValue instanceof Integer){ return Settings.System.getInt(mContext.getContentResolver(), key, ((Integer) defValue).intValue()); }else if(defValue instanceof Long){ return Settings.System.getLong(mContext.getContentResolver(), key, ((Long) defValue).longValue()); }else if(defValue instanceof Boolean){ int intData = Settings.System.getInt(mContext.getContentResolver(), key, ((Boolean) defValue).booleanValue()?1:0); return intData == 1?true:false; }else { throw new IllegalArgumentException("not support value type!"); } } /** * 保存Secure数据 * @param key * @param value */ public void putSecureData(String key, Object value){ if(value instanceof String){ Settings.Secure.putString(mContext.getContentResolver(), key, (String) value); }else if(value instanceof Integer){ Settings.Secure.putInt(mContext.getContentResolver(), key, ((Integer) value).intValue()); }else if(value instanceof Long){ Settings.Secure.putLong(mContext.getContentResolver(), key, ((Long) value).longValue()); }else if(value instanceof Boolean){ Settings.Secure.putInt(mContext.getContentResolver(), key, ((Boolean) value).booleanValue()?1:0); }else{ throw new IllegalArgumentException("not support value type!"); } } /** * 获取Secure数据 * @param key * @param defValue 默认值 */ public Object getSecureData(String key,Object defValue){ if(defValue instanceof String){ String data = Settings.Secure.getString(mContext.getContentResolver(), key); return data == null?defValue:data; }else if(defValue instanceof Integer){ return Settings.Secure.getInt(mContext.getContentResolver(), key, ((Integer) defValue).intValue()); }else if(defValue instanceof Long){ return Settings.Secure.getLong(mContext.getContentResolver(), key, ((Long) defValue).longValue()); }else if(defValue instanceof Boolean){ int intData = Settings.Secure.getInt(mContext.getContentResolver(), key, ((Boolean) defValue).booleanValue()?1:0); return intData == 1?true:false; }else { throw new IllegalArgumentException("not support value type!"); } } }

 

标签:instanceof,mContext,Settings,defValue,value,key,工具,SettingsProvider
From: https://www.cnblogs.com/mhzf/p/17036399.html

相关文章

  • Windows 安装包制作工具
    作者:光何链接:https://zhuanlan.zhihu.com/p/593859484来源:知乎著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。软件开发的最后一步即安装包的制......
  • RabbitMQ GUI客户端工具
    RabbitMQGUI客户端工具(RabbitMQAssistant)平时用控制台或者网页进行管理不免有点不方便,尤其在读取消息的时候不支持过滤和批量发送消息,在此推荐一个漂亮的GUI客户端工具......
  • 测试网络的小工具WinMTR
    ping网络的小工具搜集了两个版本中文版和英文版中文版----WinMTR中文版.rarhttps://www.aliyundrive.com/s/bZqmokL5dTt提取码:k6v7英文版WinMTR英文版.rarhttp......
  • readthedocs | 为工具撰写使用文档
     之前有教程:bookdown-撰写和发表自己的网络书籍/文档 现在发现readthedocs可能更简单,更适合页数不多的文档,可以适配JupyternotebooksinSphinx,分析做好,注释好,文档......
  • 怎样在matlab安装相机标定工具箱
    在安装matlab的时候忘记安装相机标定工具箱了,这个时候怎么在matlab中安装呢(此方法额外安装其他工具箱也有效)主页-->附加功能-->获取附加功能   搜索图像处理和计算......
  • jmap——Java内存分析工具
    jmap是JDK自带的监控工具,在JDK的根目录中可以找到。主要用来查看Java进程对内存的使用情况1、查看类列表,包含实例数、占用内存大小#pid是进程IDjmap-histo:livepid......
  • P3_注册小程序账号&安装开发者工具
    注册小程序账号点击注册按钮使用浏览器打开 https://mp.weixin.qq.com/网址,点击右上角的“立即注册”即可进入到小程序开发账号的注册流程,主要流程截图如下:选择注册......
  • 硬盘(网络)的性能分析工具
    磁盘的性能指标:吞吐量=IOPS*I/O大小IOPS:平均每秒IO的次数吞吐量:平均每秒IO的数据量磁盘I/O越大,IOPS越高,那么磁盘那么每秒I/O的吞吐量就越高随机读写频繁的应用,如......
  • Mac Snipaste 不仅仅是截图工具,不在菜单栏显示,怎么样修改快捷键
    官网下载:https://www.snipaste.comSnipaste免费,支持Windows、Mac,Windows上的功能相当多而且,Mac也够用了不仅仅是个截图工具,具有强大功能:截图贴图(直接将截图贴在......
  • DevOps实战系列【第十三章】:流水线应用工具Blue Ocean使用
    个人亲自录制全套DevOps系列实战教程:​​手把手教你玩转DevOps全栈技术​​BlueOcean图形化工具可以通过插件的方式安装到jenkins,搜索“BlueOcean”,安装后重启即可。由于......