@UnstableApi
interface CacheEvictor : Cache.Listener

Known direct subclasses
LeastRecentlyUsedCacheEvictor

Evicts least recently used cache files first.

NoOpCacheEvictor

Evictor that doesn't ever evict cache files.


Evicts data from a Cache. Implementations should call removeSpan to evict cache entries based on their eviction policies.

Summary

Public functions

Unit

Called when cache has been initialized.

Unit
onStartFile(cache: Cache!, key: String!, position: Long, length: Long)

Called when a writer starts writing to the cache.

Boolean

Returns whether the evictor requires the Cache to touch CacheSpans when it accesses them.

Inherited functions

From androidx.media3.datasource.cache.Cache.Listener
Unit
onSpanAdded(cache: Cache!, span: CacheSpan!)

Called when a CacheSpan is added to the cache.

Unit
onSpanRemoved(cache: Cache!, span: CacheSpan!)

Called when a CacheSpan is removed from the cache.

Unit
onSpanTouched(cache: Cache!, oldSpan: CacheSpan!, newSpan: CacheSpan!)

Called when an existing CacheSpan is touched, causing it to be replaced.

Public functions

onCacheInitialized

fun onCacheInitialized(): Unit

Called when cache has been initialized.

onStartFile

fun onStartFile(cache: Cache!, key: String!, position: Long, length: Long): Unit

Called when a writer starts writing to the cache.

Parameters
cache: Cache!

The source of the event.

key: String!

The key being written.

position: Long

The starting position of the data being written.

length: Long

The length of the data being written, or LENGTH_UNSET if unknown.

requiresCacheSpanTouches

fun requiresCacheSpanTouches(): Boolean

Returns whether the evictor requires the Cache to touch CacheSpans when it accesses them. Implementations that do not use lastTouchTimestamp should return false.