Android Config通用类来记录信息
1.整体分析
1.1.源代码,可以直接Copy。
public class Config {
private static int M = 1024 * 1024;
private volatile static Config mConfig;
private static LruCache<String, Object> mLruCache = new LruCache<>(1 * M);
public Config(Context context){}
public static Config init(Context context) {
if (null == mConfig) {
synchronized (Config.class) {
if (null == mConfig) {
mConfig = new Config(context);
}
}
}
return mConfig;
}
public static Config getSingleInstance() {
return mConfig;
}
//--- 基础 -----------------------------------------------------------------------------------
public <T extends Serializable> void saveData(@NonNull String key, @NonNull T value) {
mLruCache.put(key, value);
}
public <T extends Serializable> T getData(@NonNull String key, @Nullable T defaultValue) {
T result = (T) mLruCache.get(key);
if (result != null) {
return result;
}
return defaultValue;
}
//--下面要看情况了,写一些要记录的信息
//--方式如:private static Key_something="something";
//--类型看情况,这里用string了。参数也看清况,这里用一个Integer吧
//---------- publlic String saveSomething(Integer position){
// savaData(something,position);
// }
//--然后是获取了,看情况传不传参,getData第二个参数是默认的,看情况
//-----------public Integer getSomething(){
// return getData(Key_something,0)
// }
}
1.2.Config类的作用
就是一个记录用户信息的一个类。
比如某一页,用户看到了第几页第几个位置,可以通过这个方式存放到一个系统缓存中。
比如是否是第一次打开APP,都可以用这个方式存放到系统缓存中
而且这个类可以随意修改,看自己需要记录什么,只要按照例子写即可。
这是一个泛型,所以什么数据都支持。
2.局部分析
2.1.看一下定义了哪些成员变量

这里定义了一个M,数据量的大小,因为一般都是用M。1M=1024KB=1024*1024B
这里用了一个关键字volatile

然后LurCache是一个系统缓存类,相当于一个Map。
2.2.一个空的构造函数

这个可以为空,也可以和一些第三方提供的缓存类挂钩。
2.3.初始化函数

这里保证Config每次只能有一个实例,同时只能有一个线程执行,实现同步。
2.4.返回一个单例

返回一个单例,保证了唯一性。
2.5.保存数据和获取数据,泛型实现。

T 继承 Serializable,实现序列化,关于序列化可以参考这篇文章。
序列化的作用如下

什么情况下需要序列化?

Android Config通用类来记录信息的更多相关文章
- Android 意图通用类 IntentUrl
1.整体分析 1.1.源代码如下,可以直接Copy. public class IntentUtil { /** * 打开链接 * 根据设置判断是用那种方式打开 * * @param context ...
- Android 网络通用类 NetUtil
1.整体分析 1.1.源代码如下,可以直接Copy. public class NetUtil { /** * 用户是否连接网络 * * @param context Context */ publi ...
- Android AppUtil通用类
1.整体分析 1.1.先看一下源码,可以直接Copy. public class AppUtil { /** * 获取当前程序包名 * * @param context 上下文 * @return 程 ...
- Android之使用MediaMetadataRetriever类获取媒体信息
一.昨天.介绍了使用MediaMetadataRetriever类来获取视频第一帧:http://blog.csdn.net/u012561176/article/details/47858099,今 ...
- 关于Android的Build类——获取Android手机设备各种信息
经常遇到要获取Android手机设备的相关信息,来进行业务的开发,比如经常会遇到要获取CPU的类型来进行so库的动态的下载.而这些都是在Android的Build类里面.相关信息如下: private ...
- Android 文件管理器通用类 FileUtil
1.整体分析 1.1.源代码如下,可以直接Copy. public class FileUtil { private FileUtil() { } //****系统文件目录************** ...
- Android 常见工具类封装
1,MD5工具类: public class MD5Util { public final static String MD5(String s) { char hexDigits[] = { '0' ...
- Lenovo k860i 移植Android 4.4 cm11进度记录【上篇已完结】
2014.5.16 为了验证一下下载的CM11的源码有没有问题,决定编译一下cm官方支持的机器,手上正好有台nexus7 2012,就拿它为例测试一下在mac os x平台的整个编译过程. 1. 最开 ...
- NPOI MVC 模型导出Excel通用类
通用类: public enum DataTypeEnum { Int = , Float = , Double = , String = , DateTime = , Date = } public ...
随机推荐
- NoSQL(Not Only SQL)
Everything has its properties and has relation with each other. All in world can be related to each ...
- C++ Knowledge series 3
Programming language evolves always along with Compiler's evolvement The Semantics of Data The size ...
- 构建跨平台APP开发的两本书,这里重点推荐下
第一本是<构建跨平台:jquery Mobile移动应用实战> 是目前jqm开发写的比较入门的一本书,上手很快,但是高手我觉得就没有必要学习了,因为写的比较浅显. 第二本是<构建跨平 ...
- mysql5.1安装图解教程
mysql5.1安装图解教程 曾经为了要搭建模拟平台,从内地网站学习到台湾网站,其中必不可少的一项就是MySQL,那时候正好普遍用5.1,所以也很习惯用MySQL5.1版本! 下面就以MySQL5.1 ...
- 2009中国IT界名人
丁 磊:网易创始人 李 想:泡泡网 辛佳雨:代码中国创始人 张朝阳:搜狐创业者之一 王志东:新浪网创业者之一 陈天桥:盛大网络创始人,中国互动娱乐业第一人 周鸿 ...
- Hadoop federation配置
Hadoop federation配置 1.介绍 hadoop federation也称为联邦,主要是对namenode进行扩容.HA模式下只是实现了hadoop namenode的高可用,但是随着文 ...
- 笨办法学Python(一)
习题 1: 第一个程序 你应该在练习 0 中花了不少的时间,学会了如何安装文本编辑器.运行文本编辑器.以及如何运行命令行终端,而且你已经花时间熟悉了这些工具.请不要跳过前一个练习的内容直接进行下面的内 ...
- 解决Zend加密的PHP页面出现Incompatible file format的问题
错误如图: 致命错误:不兼容的文件格式可能的原因: 1.文件本身加密的问题,很有可能你用的Zend进行加密了,但是因为版本的问题,很有可能是你的主机上的Zend Optimizer版本太低了.2.文件 ...
- stixel-world代码解读
下边缘的求法应该是使用的第二篇论文的方法 上边缘的求法应该是使用的第一篇论文的方法 这是求上边缘的代码: std::vector<float> integralMembership(vma ...
- service 入门
https://www.cnblogs.com/keguangqiang/p/3663086.html#undefined