Fresco知识点笔记02-RequestLoggingListener分析

本章主要分析的是RequestLoggingListener类实现过程中用到的知识点,以下代码和图文是相关继承结构。
<pre>
1、public class RequestLoggingListener implements RequestListener
2、public interface RequestListener extends ProducerListener
3、public interface ProducerListener
</pre>

接口继承接口.png

RequestLoggingListener类相关知识点分析

<pre>
@GuardedBy("this")
private final Map<Pair<String, String>, Long> mProducerStartTimeMap;
@GuardedBy("this")
private final Map<String, Long> mRequestStartTimeMap;

//......省略部分.......

@Override
public synchronized void onRequestStart(
ImageRequest request,
Object callerContextObject,
String requestId,
boolean isPrefetch) {
//使用@GuardedBy("this")修饰的变量
mRequestStartTimeMap.put(requestId, getTime());
}
}
</pre>

知识点@GuardedBy("this")

@GuardedBy("this")标记的对象受当前对象保护,在方法中使用被GuardedBy标记的变量的时候,当前方法要用synchronized修饰,这个synchronized删掉后编译器也不会报错,GuardedBy主要是给后期开发维护人员看的,让人知道这是一个并发访问的变量,不要随便修改,比如删除synchronized。

知识点Pair

Pair是android中内部提供的一个泛型对象,可以创建一个两个属性相同或者不同的对象到Pair中。

<pre>
@Override
public synchronized void onRequestCancellation(String requestId) {
if (FLog.isLoggable(FLog.VERBOSE)) {
Long startTime = mRequestStartTimeMap.remove(requestId);
long currentTime = getTime();
...省略代码...
}
}
//获取间隔事件
private static long getElapsedTime(@Nullable Long startTime, long endTime) {
if (startTime != null) {
return endTime - startTime;
}
return -1;
}

//获取当前时间
private static long getTime() {
return SystemClock.uptimeMillis();
}
</pre>

知识点System.currentTimeMillis()

System.currentTimeMillis()也可以获取当前时间,但是这个时间可以修改;SystemClock.uptimeMillis()表示系统开机到当前的时间总数,单位是毫秒,但是,当系统进入深度睡眠(CPU休眠、屏幕休眠、设备等待外部输入)时间就会停止,但是不会受到时钟缩放、空闲或者其他节能机制的影响。

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • java笔记第一天 == 和 equals ==比较的比较的是两个变量的值是否相等,对于引用型变量表示的是两个变量...
    jmychou阅读 1,518评论 0 3
  • 文章来源:http://www.54tianzhisheng.cn/2017/06/04/Java-Thread/...
    beneke阅读 1,525评论 0 1
  • Java8张图 11、字符串不变性 12、equals()方法、hashCode()方法的区别 13、...
    Miley_MOJIE阅读 3,731评论 0 11
  • 1. Java基础部分 基础部分的顺序:基本语法,类相关的语法,内部类的语法,继承相关的语法,异常的语法,线程的语...
    子非鱼_t_阅读 31,767评论 18 399
  • 成全 总会有一些故事,像1988的某个家庭,像宝拉与父亲的关系,像正焕与父母之间吝啬的交流,像善宇对母亲渐渐的理解...
    木子_f76b阅读 173评论 0 0