@Override
    public void onResourceRemoved(final Resource<?> resource) {
        Util.assertMainThread();
        resourceRecycler.recycle(resource);
    }
Starts a load for the given arguments. Must be called on the main thread.

<p>
    The flow for any request is as follows:
    <ul>
        <li>Check the memory cache and provide the cached resource if present</li>
        <li>Check the current set of actively used resources and return the active resource if present</li>
        <li>Check the current set of in progress loads and add the cb to the in progress load if present</li>
        <li>Start a new load</li>
    </ul>
</p>

<p>
    Active resources are those that have been provided to at least one request and have not yet been released.
    Once all consumers of a resource have released that resource, the resource then goes to cache. If the
    resource is ever returned to a new consumer from cache, it is re-added to the active resources. If the
    resource is evicted from the cache, its resources are recycled and re-used if possible and the resource is
    discarded. There is no strict requirement that consumers release their resources so active resources are
    held weakly.
</p>

@param signature A non-null unique key to be mixed into the cache key that identifies the version of the data to
                 be loaded.
@param width The target width in pixels of the desired resource.
@param height The target height in pixels of the desired resource.
@param fetcher The fetcher to use to retrieve data not in the disk cache.
@param loadProvider The load provider containing various encoders and decoders use to decode and encode data.
@param transformation The transformation to use to transform the decoded resource.
@param transcoder The transcoder to use to transcode the decoded and transformed resource.
@param priority The priority with which the request should run.
@param isMemoryCacheable True if the transcoded resource can be cached in memory.
@param diskCacheStrategy The strategy to use that determines what type of data, if any,
                         will be cached in the local disk cache.
@param cb The callback that will be called when the load completes.

@param <T> The type of data the resource will be decoded from.
@param <Z> The type of the resource that will be decoded.
@param <R> The type of the resource that will be transcoded from the decoded resource.
core/src/main/java/com/bumptech/glide/load/engine/Engine.java