# NoOpCacheEvictor

# NoOpCacheEvictor

Artifact:[androidx.media3:media3-datasource](https://developer.android.com/jetpack/androidx/releases/media3)  
[View Source](https://cs.android.com/search?q=file:androidx/media3/datasource/cache/NoOpCacheEvictor.java+class:androidx.media3.datasource.cache.NoOpCacheEvictor)

*** ** * ** ***

Kotlin\|[Java](https://developer.android.com/reference/androidx/media3/datasource/cache/NoOpCacheEvictor "View this page in Java")

<br />

```
@UnstableApi
class NoOpCacheEvictor : CacheEvictor
```

<br />

*** ** * ** ***

Evictor that doesn't ever evict cache files.

Warning: Using this evictor might have unforeseeable consequences if cache size is not managed elsewhere.

## Summary

|                                                           ### Public constructors                                                           |
|---------------------------------------------------------------------------------------------------------------------------------------------|
| [NoOpCacheEvictor](https://developer.android.com/reference/kotlin/androidx/media3/datasource/cache/NoOpCacheEvictor#NoOpCacheEvictor())`()` |

|                                ### Public functions                                 |
|-------------------------------------------------------------------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| [Unit](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html)       | [onCacheInitialized](https://developer.android.com/reference/kotlin/androidx/media3/datasource/cache/NoOpCacheEvictor#onCacheInitialized())`()` Called when cache has been initialized.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                               |
| [Unit](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html)       | [onSpanAdded](https://developer.android.com/reference/kotlin/androidx/media3/datasource/cache/NoOpCacheEvictor#onSpanAdded(androidx.media3.datasource.cache.Cache,androidx.media3.datasource.cache.CacheSpan))`(cache: `[Cache](https://developer.android.com/reference/kotlin/androidx/media3/datasource/cache/Cache)`!, span: `[CacheSpan](https://developer.android.com/reference/kotlin/androidx/media3/datasource/cache/CacheSpan)`!)` Called when a[CacheSpan](https://developer.android.com/reference/kotlin/androidx/media3/datasource/cache/CacheSpan)is added to the cache.                                                                                                                                                                                                 |
| [Unit](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html)       | [onSpanRemoved](https://developer.android.com/reference/kotlin/androidx/media3/datasource/cache/NoOpCacheEvictor#onSpanRemoved(androidx.media3.datasource.cache.Cache,androidx.media3.datasource.cache.CacheSpan))`(cache: `[Cache](https://developer.android.com/reference/kotlin/androidx/media3/datasource/cache/Cache)`!, span: `[CacheSpan](https://developer.android.com/reference/kotlin/androidx/media3/datasource/cache/CacheSpan)`!)` Called when a[CacheSpan](https://developer.android.com/reference/kotlin/androidx/media3/datasource/cache/CacheSpan)is removed from the cache.                                                                                                                                                                                         |
| [Unit](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html)       | [onSpanTouched](https://developer.android.com/reference/kotlin/androidx/media3/datasource/cache/NoOpCacheEvictor#onSpanTouched(androidx.media3.datasource.cache.Cache,androidx.media3.datasource.cache.CacheSpan,androidx.media3.datasource.cache.CacheSpan))`(cache: `[Cache](https://developer.android.com/reference/kotlin/androidx/media3/datasource/cache/Cache)`!, oldSpan: `[CacheSpan](https://developer.android.com/reference/kotlin/androidx/media3/datasource/cache/CacheSpan)`!, newSpan: `[CacheSpan](https://developer.android.com/reference/kotlin/androidx/media3/datasource/cache/CacheSpan)`!)` Called when an existing[CacheSpan](https://developer.android.com/reference/kotlin/androidx/media3/datasource/cache/CacheSpan)is touched, causing it to be replaced. |
| [Unit](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-unit/index.html)       | [onStartFile](https://developer.android.com/reference/kotlin/androidx/media3/datasource/cache/NoOpCacheEvictor#onStartFile(androidx.media3.datasource.cache.Cache,java.lang.String,long,long))`(cache: `[Cache](https://developer.android.com/reference/kotlin/androidx/media3/datasource/cache/Cache)`!, key: `[String](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html)`!, position: `[Long](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html)`, length: `[Long](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html)`)` Called when a writer starts writing to the cache.                                                                                                                                           |
| [Boolean](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-boolean/index.html) | [requiresCacheSpanTouches](https://developer.android.com/reference/kotlin/androidx/media3/datasource/cache/NoOpCacheEvictor#requiresCacheSpanTouches())`()` Returns whether the evictor requires the[Cache](https://developer.android.com/reference/kotlin/androidx/media3/datasource/cache/Cache)to touch[CacheSpans](https://developer.android.com/reference/kotlin/androidx/media3/datasource/cache/CacheSpan)when it accesses them.                                                                                                                                                                                                                                                                                                                                               |

## Public constructors

### NoOpCacheEvictor

```
NoOpCacheEvictor()
```  

## Public functions

### onCacheInitialized

```
fun onCacheInitialized(): Unit
```

Called when cache has been initialized.  

### onSpanAdded

```
fun onSpanAdded(cache: Cache!, span: CacheSpan!): Unit
```

Called when a[CacheSpan](https://developer.android.com/reference/kotlin/androidx/media3/datasource/cache/CacheSpan)is added to the cache.  

|                                                    Parameters                                                     |
|-------------------------------------------------------------------------------------------------------------------|------------------------------------------------------------------------------------------------------------------|
| `cache: `[Cache](https://developer.android.com/reference/kotlin/androidx/media3/datasource/cache/Cache)`!`        | The source of the event.                                                                                         |
| `span: `[CacheSpan](https://developer.android.com/reference/kotlin/androidx/media3/datasource/cache/CacheSpan)`!` | The added[CacheSpan](https://developer.android.com/reference/kotlin/androidx/media3/datasource/cache/CacheSpan). |

### onSpanRemoved

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

Called when a[CacheSpan](https://developer.android.com/reference/kotlin/androidx/media3/datasource/cache/CacheSpan)is removed from the cache.  

|                                                    Parameters                                                     |
|-------------------------------------------------------------------------------------------------------------------|--------------------------------------------------------------------------------------------------------------------|
| `cache: `[Cache](https://developer.android.com/reference/kotlin/androidx/media3/datasource/cache/Cache)`!`        | The source of the event.                                                                                           |
| `span: `[CacheSpan](https://developer.android.com/reference/kotlin/androidx/media3/datasource/cache/CacheSpan)`!` | The removed[CacheSpan](https://developer.android.com/reference/kotlin/androidx/media3/datasource/cache/CacheSpan). |

### onSpanTouched

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

Called when an existing[CacheSpan](https://developer.android.com/reference/kotlin/androidx/media3/datasource/cache/CacheSpan)is touched, causing it to be replaced. The new[CacheSpan](https://developer.android.com/reference/kotlin/androidx/media3/datasource/cache/CacheSpan)is guaranteed to represent the same data as the one it replaces, however[file](https://developer.android.com/reference/kotlin/androidx/media3/datasource/cache/CacheSpan#file())and[lastTouchTimestamp](https://developer.android.com/reference/kotlin/androidx/media3/datasource/cache/CacheSpan#lastTouchTimestamp())may have changed.

Note that for span replacement,[onSpanAdded](https://developer.android.com/reference/kotlin/androidx/media3/datasource/cache/Cache.Listener#onSpanAdded(androidx.media3.datasource.cache.Cache,androidx.media3.datasource.cache.CacheSpan))and[onSpanRemoved](https://developer.android.com/reference/kotlin/androidx/media3/datasource/cache/Cache.Listener#onSpanRemoved(androidx.media3.datasource.cache.Cache,androidx.media3.datasource.cache.CacheSpan))are not called in addition to this method.  

|                                                      Parameters                                                      |
|----------------------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------|
| `cache: `[Cache](https://developer.android.com/reference/kotlin/androidx/media3/datasource/cache/Cache)`!`           | The source of the event.                                                                                                                              |
| `oldSpan: `[CacheSpan](https://developer.android.com/reference/kotlin/androidx/media3/datasource/cache/CacheSpan)`!` | The old[CacheSpan](https://developer.android.com/reference/kotlin/androidx/media3/datasource/cache/CacheSpan), which has been removed from the cache. |
| `newSpan: `[CacheSpan](https://developer.android.com/reference/kotlin/androidx/media3/datasource/cache/CacheSpan)`!` | The new[CacheSpan](https://developer.android.com/reference/kotlin/androidx/media3/datasource/cache/CacheSpan), which has been added to the cache.     |

### onStartFile

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

Called when a writer starts writing to the cache.  

|                                                 Parameters                                                 |
|------------------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------------------------------------------|
| `cache: `[Cache](https://developer.android.com/reference/kotlin/androidx/media3/datasource/cache/Cache)`!` | The source of the event.                                                                                                                                  |
| `key: `[String](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-string/index.html)`!`                | The key being written.                                                                                                                                    |
| `position: `[Long](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html)                  | The starting position of the data being written.                                                                                                          |
| `length: `[Long](https://kotlinlang.org/api/core/kotlin-stdlib/kotlin/-long/index.html)                    | The length of the data being written, or[LENGTH_UNSET](https://developer.android.com/reference/kotlin/androidx/media3/common/C#LENGTH_UNSET())if unknown. |

### requiresCacheSpanTouches

```
fun requiresCacheSpanTouches(): Boolean
```

Returns whether the evictor requires the[Cache](https://developer.android.com/reference/kotlin/androidx/media3/datasource/cache/Cache)to touch[CacheSpans](https://developer.android.com/reference/kotlin/androidx/media3/datasource/cache/CacheSpan)when it accesses them. Implementations that do not use[lastTouchTimestamp](https://developer.android.com/reference/kotlin/androidx/media3/datasource/cache/CacheSpan#lastTouchTimestamp())should return`false`.