Glide:ActiveResources
Posted bdmh
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Glide:ActiveResources相关的知识,希望对你有一定的参考价值。
在《Glide:Engine》文章中,我们多次看到了ActiveResources这个对象,我们可以理解为活动的资源,今天就来分析一下ActiveResources的代码。
先看看内部属性:
//资源是否允许保持住
private final boolean isActiveResourceRetentionAllowed;
//这是一个线程,在后台允许,监控清理资源的
//清理弱引用的资源对象
private final Executor monitorClearedResourcesExecutor;
//保留活动的资源
@VisibleForTesting final Map<Key, ResourceWeakReference> activeEngineResources = new HashMap<>();
//弱引用的资源队列
private final ReferenceQueue<EngineResource<?>> resourceReferenceQueue = new ReferenceQueue<>();
//资源监听,当资源释放时触发
private ResourceListener listener;
//是否当前线程被终止
private volatile boolean isShutdown;
//移除队列监听
@Nullable private volatile DequeuedResourceCallback cb;
资源监听是被定义在 EngineResource类中,Engine实现了这个接口。
以上是关于Glide:ActiveResources的主要内容,如果未能解决你的问题,请参考以下文章