Stay organized with collections
Save and categorize content based on your preferences.
Annotations
Interfaces
Classes
Exceptions
Content and code samples on this page are subject to the licenses described in the Content License. Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
Last updated 2025-05-15 UTC.
[null,null,["Last updated 2025-05-15 UTC."],[],[],null,["# androidx.media3.datasource.cache\n================================\n\n*** ** * ** ***\n\n[Kotlin](/reference/kotlin/androidx/media3/datasource/cache/package-summary \"View this page in Kotlin\") \\|Java\n\nAnnotations\n-----------\n\n|----------------------------------------------------------------------------------------------------------------------|---------------------------------------------------|\n| [CacheDataSource.CacheIgnoredReason](/reference/androidx/media3/datasource/cache/CacheDataSource.CacheIgnoredReason) | Reasons the cache may be ignored. |\n| [CacheDataSource.Flags](/reference/androidx/media3/datasource/cache/CacheDataSource.Flags) | Flags controlling the CacheDataSource's behavior. |\n\nInterfaces\n----------\n\n|------------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------|\n| [Cache](/reference/androidx/media3/datasource/cache/Cache) | A cache that supports partial caching of resources. |\n| [Cache.Listener](/reference/androidx/media3/datasource/cache/Cache.Listener) | Listener of [Cache](/reference/androidx/media3/datasource/cache/Cache) events. |\n| [CacheDataSource.EventListener](/reference/androidx/media3/datasource/cache/CacheDataSource.EventListener) | Listener of [CacheDataSource](/reference/androidx/media3/datasource/cache/CacheDataSource) events. |\n| [CacheEvictor](/reference/androidx/media3/datasource/cache/CacheEvictor) | Evicts data from a [Cache](/reference/androidx/media3/datasource/cache/Cache). |\n| [CacheKeyFactory](/reference/androidx/media3/datasource/cache/CacheKeyFactory) | Factory for cache keys. |\n| [CacheWriter.ProgressListener](/reference/androidx/media3/datasource/cache/CacheWriter.ProgressListener) | Receives progress updates during cache operations. |\n| [ContentMetadata](/reference/androidx/media3/datasource/cache/ContentMetadata) | Interface for an immutable snapshot of keyed metadata. |\n\nClasses\n-------\n\n|------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|\n| [CacheDataSink](/reference/androidx/media3/datasource/cache/CacheDataSink) | Writes data into a cache. |\n| [CacheDataSink.Factory](/reference/androidx/media3/datasource/cache/CacheDataSink.Factory) | [DataSink.Factory](/reference/androidx/media3/datasource/DataSink.Factory) for [CacheDataSink](/reference/androidx/media3/datasource/cache/CacheDataSink) instances. |\n| [CacheDataSource](/reference/androidx/media3/datasource/cache/CacheDataSource) | A [DataSource](/reference/androidx/media3/datasource/DataSource) that reads and writes a [Cache](/reference/androidx/media3/datasource/cache/Cache). |\n| [CacheDataSource.Factory](/reference/androidx/media3/datasource/cache/CacheDataSource.Factory) | [DataSource.Factory](/reference/androidx/media3/datasource/DataSource.Factory) for [CacheDataSource](/reference/androidx/media3/datasource/cache/CacheDataSource) instances. |\n| [CacheSpan](/reference/androidx/media3/datasource/cache/CacheSpan) | Defines a span of data that may or may not be cached (as indicated by [isCached](/reference/androidx/media3/datasource/cache/CacheSpan#isCached())). |\n| [CacheWriter](/reference/androidx/media3/datasource/cache/CacheWriter) | Caching related utility methods. |\n| [ContentMetadataMutations](/reference/androidx/media3/datasource/cache/ContentMetadataMutations) | Defines multiple mutations on metadata value which are applied atomically. |\n| [DefaultContentMetadata](/reference/androidx/media3/datasource/cache/DefaultContentMetadata) | Default implementation of [ContentMetadata](/reference/androidx/media3/datasource/cache/ContentMetadata). |\n| [LeastRecentlyUsedCacheEvictor](/reference/androidx/media3/datasource/cache/LeastRecentlyUsedCacheEvictor) | Evicts least recently used cache files first. |\n| [NoOpCacheEvictor](/reference/androidx/media3/datasource/cache/NoOpCacheEvictor) | Evictor that doesn't ever evict cache files. |\n| [SimpleCache](/reference/androidx/media3/datasource/cache/SimpleCache) | A [Cache](/reference/androidx/media3/datasource/cache/Cache) implementation that maintains an in-memory representation. |\n\nExceptions\n----------\n\n|--------------------------------------------------------------------------------------------------------------------------|----------------------------------------------------------------------------------------------------------------------------------------------|\n| [Cache.CacheException](/reference/androidx/media3/datasource/cache/Cache.CacheException) | Thrown when an error is encountered when writing data. |\n| [CacheDataSink.CacheDataSinkException](/reference/androidx/media3/datasource/cache/CacheDataSink.CacheDataSinkException) | Thrown when an [IOException](https://developer.android.com/reference/java/io/IOException.html) is encountered when writing data to the sink. |"]]