# TrainingInterval.Builder

Added in[API level 35](https://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels)

# Builder

*** ** * ** ***

Kotlin\|[Java](https://developer.android.com/reference/android/adservices/ondevicepersonalization/TrainingInterval.Builder "View this page in Java")  

```
class Builder
```

|---|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| [kotlin.Any](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-any/index.html)                                                                                                             ||
| ↳ | [android.adservices.ondevicepersonalization.TrainingInterval.Builder](https://developer.android.com/reference/kotlin/android/adservices/ondevicepersonalization/TrainingInterval.Builder#) |

A builder for[TrainingInterval](https://developer.android.com/reference/kotlin/android/adservices/ondevicepersonalization/TrainingInterval)

## Summary

|                                                                  Public constructors                                                                  ||
|----------------------------------------------------------------------------------------------------------------------------------------------------|---|
| [Builder](https://developer.android.com/reference/kotlin/android/adservices/ondevicepersonalization/TrainingInterval.Builder#Builder())`()` <br /> |

|                                                                                                                                                                                                                                                                                                                                                                                                   Public methods                                                                                                                                                                                                                                                                                                                                                                                                   ||
|-------------------------------------------------------------------------------------------------------------------------------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| [TrainingInterval](https://developer.android.com/reference/kotlin/android/adservices/ondevicepersonalization/TrainingInterval)                  | [build](https://developer.android.com/reference/kotlin/android/adservices/ondevicepersonalization/TrainingInterval.Builder#build())`()` Builds the instance.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                      |
| [TrainingInterval.Builder](https://developer.android.com/reference/kotlin/android/adservices/ondevicepersonalization/TrainingInterval.Builder#) | [setMinimumInterval](https://developer.android.com/reference/kotlin/android/adservices/ondevicepersonalization/TrainingInterval.Builder#setMinimumInterval(java.time.Duration))`(`value:` `[Duration](https://developer.android.com/reference/kotlin/java/time/Duration.html#)`)` Sets the minimum time interval between two training runs.                                                                                                                                                                                                                                                                                                                       |
| [TrainingInterval.Builder](https://developer.android.com/reference/kotlin/android/adservices/ondevicepersonalization/TrainingInterval.Builder#) | [setSchedulingMode](https://developer.android.com/reference/kotlin/android/adservices/ondevicepersonalization/TrainingInterval.Builder#setSchedulingMode(kotlin.Int))`(`value:` `[Int](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html)`)` The scheduling mode for this task, either[SCHEDULING_MODE_ONE_TIME](https://developer.android.com/reference/kotlin/android/adservices/ondevicepersonalization/TrainingInterval#SCHEDULING_MODE_ONE_TIME:kotlin.Int)or[SCHEDULING_MODE_RECURRENT](https://developer.android.com/reference/kotlin/android/adservices/ondevicepersonalization/TrainingInterval#SCHEDULING_MODE_RECURRENT:kotlin.Int). |

## Public constructors

### Builder

Added in[API level 35](https://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels)  

```
Builder()
```

## Public methods

### build

Added in[API level 35](https://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels)  

```
fun build(): TrainingInterval
```

Builds the instance. This builder should not be touched after calling this!

|                                                                           Return                                                                            ||
|--------------------------------------------------------------------------------------------------------------------------------|-----------------------------|
| [TrainingInterval](https://developer.android.com/reference/kotlin/android/adservices/ondevicepersonalization/TrainingInterval) | This value cannot be`null`. |

### setMinimumInterval

Added in[API level 35](https://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels)  

```
fun setMinimumInterval(value: Duration): TrainingInterval.Builder
```

Sets the minimum time interval between two training runs.

This field will only be used when the scheduling mode is[SCHEDULING_MODE_RECURRENT](https://developer.android.com/reference/kotlin/android/adservices/ondevicepersonalization/TrainingInterval#SCHEDULING_MODE_RECURRENT:kotlin.Int). Only positive values are accepted, zero or negative values will result in IllegalArgumentException.

Please also note this value is advisory, which does not guarantee the job will be run immediately after the interval expired. Federated compute will still enforce a minimum required interval and training constraints to ensure system health. The current training constraints are device on unmetered network, idle and battery not low.

|                                                        Parameters                                                        ||
|---------|-----------------------------------------------------------------------------------------------------------------|
| `value` | [Duration](https://developer.android.com/reference/kotlin/java/time/Duration.html#):This value cannot be`null`. |

|                                                                                    Return                                                                                    ||
|-------------------------------------------------------------------------------------------------------------------------------------------------|-----------------------------|
| [TrainingInterval.Builder](https://developer.android.com/reference/kotlin/android/adservices/ondevicepersonalization/TrainingInterval.Builder#) | This value cannot be`null`. |

### setSchedulingMode

Added in[API level 35](https://developer.android.com/guide/topics/manifest/uses-sdk-element.html#ApiLevels)  

```
fun setSchedulingMode(value: Int): TrainingInterval.Builder
```

The scheduling mode for this task, either[SCHEDULING_MODE_ONE_TIME](https://developer.android.com/reference/kotlin/android/adservices/ondevicepersonalization/TrainingInterval#SCHEDULING_MODE_ONE_TIME:kotlin.Int)or[SCHEDULING_MODE_RECURRENT](https://developer.android.com/reference/kotlin/android/adservices/ondevicepersonalization/TrainingInterval#SCHEDULING_MODE_RECURRENT:kotlin.Int). The default scheduling mode is[SCHEDULING_MODE_ONE_TIME](https://developer.android.com/reference/kotlin/android/adservices/ondevicepersonalization/TrainingInterval#SCHEDULING_MODE_ONE_TIME:kotlin.Int)if unspecified.

|                                                                                                                                                                                                                                                                                   Parameters                                                                                                                                                                                                                                                                                   ||
|---------|-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| `value` | [Int](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html):Value is[android.adservices.ondevicepersonalization.TrainingInterval#SCHEDULING_MODE_ONE_TIME](https://developer.android.com/reference/kotlin/android/adservices/ondevicepersonalization/TrainingInterval#SCHEDULING_MODE_ONE_TIME:kotlin.Int), or[android.adservices.ondevicepersonalization.TrainingInterval#SCHEDULING_MODE_RECURRENT](https://developer.android.com/reference/kotlin/android/adservices/ondevicepersonalization/TrainingInterval#SCHEDULING_MODE_RECURRENT:kotlin.Int) |

|                                                                                    Return                                                                                    ||
|-------------------------------------------------------------------------------------------------------------------------------------------------|-----------------------------|
| [TrainingInterval.Builder](https://developer.android.com/reference/kotlin/android/adservices/ondevicepersonalization/TrainingInterval.Builder#) | This value cannot be`null`. |