Added in [API level 37](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels) Summary: [Constants](https://developer.android.com/reference/android/app/Notification.MetricStyle#constants) \| [Inherited Fields](https://developer.android.com/reference/android/app/Notification.MetricStyle#inhfields) \| [Ctors](https://developer.android.com/reference/android/app/Notification.MetricStyle#pubctors) \| [Methods](https://developer.android.com/reference/android/app/Notification.MetricStyle#pubmethods) \| [Inherited Methods](https://developer.android.com/reference/android/app/Notification.MetricStyle#inhmethods)

# Notification.MetricStyle

*** ** * ** ***


`
public
static
final

class
Notification.MetricStyle
`


`


`

`

extends https://developer.android.com/reference/android/app/Notification.Style


`

`


`

|---|---|---|
| [java.lang.Object](https://developer.android.com/reference/java/lang/Object) |||
| ↳ | [android.app.Notification.Style](https://developer.android.com/reference/android/app/Notification.Style) ||
|   | ↳ | android.app.Notification.MetricStyle |

<br />

*** ** * ** ***

A notification style which shows up to 3 metrics when expanded. Metrics usually represent
quantities that change over time, such as fitness information collected by a tracker, timers,
weather information, etc.

To use this style with your Notification, feed it to
`https://developer.android.com/reference/android/app/Notification.Builder#setStyle(android.app.Notification.Style)` like so:

```
Notification notif = new Notification.Builder(context)
  .setStyle(new MetricStyle()
      .addMetric(new Metric(new Metric.FixedInt(1979), "Steps"))
      .addMetric(new Metric(
          Metric.TimeDifference.forStopwatch(startTime, FORMAT_CHRONOMETER_AUTOMATIC),
          "Time elapsed")))
```

A MetricStyle must contain at least one `https://developer.android.com/reference/android/app/Notification.Metric` object to be valid; an invalid
style will be rejected when `https://developer.android.com/reference/android/app/Notification.Builder#build()` is called.

If a notification with this style is `https://developer.android.com/reference/android/app/Notification#FLAG_PROMOTED_ONGOING`,
then one of its metrics might be displayed in the status bar chip.

Note that this style doesn't display the large icon set via
`https://developer.android.com/reference/android/app/Notification.Builder#setLargeIcon(android.graphics.drawable.Icon)`.

## Summary

| ### Constants ||
|---|---|
| `int` | `https://developer.android.com/reference/android/app/Notification.MetricStyle#METRIC_INDEX_NONE` Special value for `https://developer.android.com/reference/android/app/Notification.MetricStyle#setCriticalMetric(int)` to indicate that none of the metrics should be considered the "most important" one. |

### Inherited fields

From class `https://developer.android.com/reference/android/app/Notification.Style` `
protected


https://developer.android.com/reference/android/app/Notification.Builder` `https://developer.android.com/reference/android/app/Notification.Style#mBuilder`


| ### Public constructors ||
|---|---|
| ` https://developer.android.com/reference/android/app/Notification.MetricStyle#MetricStyle()() ` |

| ### Public methods ||
|---|---|
| ` https://developer.android.com/reference/android/app/Notification.MetricStyle` | ` https://developer.android.com/reference/android/app/Notification.MetricStyle#addMetric(android.app.Notification.Metric)(https://developer.android.com/reference/android/app/Notification.Metric metric) ` Adds a `https://developer.android.com/reference/android/app/Notification.Metric` to this `https://developer.android.com/reference/android/app/Notification.MetricStyle`. |
| ` boolean` | ` https://developer.android.com/reference/android/app/Notification.MetricStyle#equals(java.lang.Object)(https://developer.android.com/reference/java/lang/Object obj) ` Indicates whether some other object is "equal to" this one. |
| ` https://developer.android.com/reference/android/app/Notification.Metric` | ` https://developer.android.com/reference/android/app/Notification.MetricStyle#getCriticalMetric()() ` Returns which, if any, of the metrics is considered the "most important", or `null` if none are. |
| ` https://developer.android.com/reference/java/util/List<https://developer.android.com/reference/android/app/Notification.Metric>` | ` https://developer.android.com/reference/android/app/Notification.MetricStyle#getMetrics()() ` Returns an immutable view of the list of `https://developer.android.com/reference/android/app/Notification.Metric` instances in this `https://developer.android.com/reference/android/app/Notification.MetricStyle`. |
| ` int` | ` https://developer.android.com/reference/android/app/Notification.MetricStyle#hashCode()() ` Returns a hash code value for the object. |
| ` https://developer.android.com/reference/android/app/Notification.MetricStyle` | ` https://developer.android.com/reference/android/app/Notification.MetricStyle#setCriticalMetric(int)(int index) ` Indicates which of the metrics is considered the "most important". |
| ` https://developer.android.com/reference/android/app/Notification.MetricStyle` | ` https://developer.android.com/reference/android/app/Notification.MetricStyle#setMetrics(java.util.List<android.app.Notification.Metric>)(https://developer.android.com/reference/java/util/List<https://developer.android.com/reference/android/app/Notification.Metric> metrics) ` Sets the list of `https://developer.android.com/reference/android/app/Notification.Metric` instances for this `https://developer.android.com/reference/android/app/Notification.MetricStyle`, replacing whatever was added before. |
| ` https://developer.android.com/reference/java/lang/String` | ` https://developer.android.com/reference/android/app/Notification.MetricStyle#toString()() ` Returns a string representation of the object. |

### Inherited methods

From class `

https://developer.android.com/reference/android/app/Notification.Style

` `


https://developer.android.com/reference/android/app/Notification` `
https://developer.android.com/reference/android/app/Notification.Style#build()()
`

Calls `https://developer.android.com/reference/android/app/Notification.Builder#build()` on the Builder this Style is
attached to.


`


void` `
https://developer.android.com/reference/android/app/Notification.Style#checkBuilder()()
` `


https://developer.android.com/reference/android/widget/RemoteViews` `
https://developer.android.com/reference/android/app/Notification.Style#getStandardView(int)(int layoutId)
` `


void` `
https://developer.android.com/reference/android/app/Notification.Style#internalSetBigContentTitle(java.lang.CharSequence)(https://developer.android.com/reference/java/lang/CharSequence title)
`

Overrides ContentTitle in the expanded form of the template.


`


void` `
https://developer.android.com/reference/android/app/Notification.Style#internalSetSummaryText(java.lang.CharSequence)(https://developer.android.com/reference/java/lang/CharSequence cs)
`

Set the first line of text after the detail section in the expanded form of the template.


`


void` `
https://developer.android.com/reference/android/app/Notification.Style#setBuilder(android.app.Notification.Builder)(https://developer.android.com/reference/android/app/Notification.Builder builder)
` From class `

https://developer.android.com/reference/java/lang/Object

` `


https://developer.android.com/reference/java/lang/Object` `
https://developer.android.com/reference/java/lang/Object#clone()()
`

Creates and returns a copy of this object.


`


boolean` `
https://developer.android.com/reference/java/lang/Object#equals(java.lang.Object)(https://developer.android.com/reference/java/lang/Object obj)
`

Indicates whether some other object is "equal to" this one.


`


void` `
https://developer.android.com/reference/java/lang/Object#finalize()()
`

Called by the garbage collector on an object when garbage collection
determines that there are no more references to the object.


`


final

https://developer.android.com/reference/java/lang/Class<?>` `
https://developer.android.com/reference/java/lang/Object#getClass()()
`

Returns the runtime class of this `Object`.


`


int` `
https://developer.android.com/reference/java/lang/Object#hashCode()()
`

Returns a hash code value for the object.


`


final

void` `
https://developer.android.com/reference/java/lang/Object#notify()()
`

Wakes up a single thread that is waiting on this object's
monitor.


`


final

void` `
https://developer.android.com/reference/java/lang/Object#notifyAll()()
`

Wakes up all threads that are waiting on this object's monitor.


`


https://developer.android.com/reference/java/lang/String` `
https://developer.android.com/reference/java/lang/Object#toString()()
`

Returns a string representation of the object.


`


final

void` `
https://developer.android.com/reference/java/lang/Object#wait(long,%20int)(long timeoutMillis, int nanos)
`

Causes the current thread to wait until it is awakened, typically
by being *notified* or *interrupted*, or until a
certain amount of real time has elapsed.


`


final

void` `
https://developer.android.com/reference/java/lang/Object#wait(long)(long timeoutMillis)
`

Causes the current thread to wait until it is awakened, typically
by being *notified* or *interrupted*, or until a
certain amount of real time has elapsed.


`


final

void` `
https://developer.android.com/reference/java/lang/Object#wait()()
`

Causes the current thread to wait until it is awakened, typically
by being *notified* or *interrupted*.


## Constants

### METRIC_INDEX_NONE

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

```
public static final int METRIC_INDEX_NONE
```

Special value for `https://developer.android.com/reference/android/app/Notification.MetricStyle#setCriticalMetric(int)` to indicate that none of the metrics
should be considered the "most important" one.

<br />

Constant Value:

-1
(0xffffffff)


## Public constructors

### MetricStyle

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

```
public MetricStyle ()
```

<br />

<br />

## Public methods

### addMetric

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

```
public Notification.MetricStyle addMetric (Notification.Metric metric)
```

Adds a `https://developer.android.com/reference/android/app/Notification.Metric` to this `https://developer.android.com/reference/android/app/Notification.MetricStyle`.

<br />

| Parameters ||
|---|---|
| `metric` | `Notification.Metric`: This value cannot be `null`. <br /> |

| Returns ||
|---|---|
| `https://developer.android.com/reference/android/app/Notification.MetricStyle` | This value cannot be `null`. <br /> |

### equals

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

```
public boolean equals (Object obj)
```

Indicates whether some other object is "equal to" this one.


The `equals` method implements an equivalence relation
on non-null object references:

- It is *reflexive*: for any non-null reference value `x`, `x.equals(x)` should return `true`.
- It is *symmetric*: for any non-null reference values `x` and `y`, `x.equals(y)` should return `true` if and only if `y.equals(x)` returns `true`.
- It is *transitive*: for any non-null reference values `x`, `y`, and `z`, if `x.equals(y)` returns `true` and `y.equals(z)` returns `true`, then `x.equals(z)` should return `true`.
- It is *consistent*: for any non-null reference values `x` and `y`, multiple invocations of `x.equals(y)` consistently return `true` or consistently return `false`, provided no information used in `equals` comparisons on the objects is modified.
- For any non-null reference value `x`, `x.equals(null)` should return `false`.


An equivalence relation partitions the elements it operates on
into *equivalence classes*; all the members of an
equivalence class are equal to each other. Members of an
equivalence class are substitutable for each other, at least
for some purposes.

<br />

| Parameters ||
|---|---|
| `obj` | `Object`: the reference object with which to compare. <br /> |

| Returns ||
|---|---|
| `boolean` | `true` if this object is the same as the obj argument; `false` otherwise. <br /> |

### getCriticalMetric

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

```
public Notification.Metric getCriticalMetric ()
```

Returns which, if any, of the metrics is considered the "most important", or `null`
if none are. This may be used when the notification is displayed in other surfaces (such
as a status bar chip).

By default, unless `https://developer.android.com/reference/android/app/Notification.MetricStyle#setCriticalMetric(int)` has been set, the first metric in
the list is considered the critical one.

<br />

| Returns ||
|---|---|
| `https://developer.android.com/reference/android/app/Notification.Metric` | <br /> |

### getMetrics

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

```
public List<Notification.Metric> getMetrics ()
```

Returns an immutable view of the list of `https://developer.android.com/reference/android/app/Notification.Metric` instances in this
`https://developer.android.com/reference/android/app/Notification.MetricStyle`.

<br />

| Returns ||
|---|---|
| `https://developer.android.com/reference/java/util/List<https://developer.android.com/reference/android/app/Notification.Metric>` | This value cannot be `null`. <br /> |

### hashCode

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

```
public int hashCode ()
```

Returns a hash code value for the object. This method is
supported for the benefit of hash tables such as those provided by
`https://developer.android.com/reference/java/util/HashMap`.


The general contract of `hashCode` is:

- Whenever it is invoked on the same object more than once during an execution of a Java application, the `hashCode` method must consistently return the same integer, provided no information used in `equals` comparisons on the object is modified. This integer need not remain consistent from one execution of an application to another execution of the same application.
- If two objects are equal according to the `https://developer.android.com/reference/java/lang/Object#equals(java.lang.Object)` method, then calling the `hashCode` method on each of the two objects must produce the same integer result.
- It is *not* required that if two objects are unequal according to the `https://developer.android.com/reference/java/lang/Object#equals(java.lang.Object)` method, then calling the `hashCode` method on each of the two objects must produce distinct integer results. However, the programmer should be aware that producing distinct integer results for unequal objects may improve the performance of hash tables.

<br />

<br />

| Returns ||
|---|---|
| `int` | a hash code value for this object. <br /> |

### setCriticalMetric

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

```
public Notification.MetricStyle setCriticalMetric (int index)
```

Indicates which of the metrics is considered the "most important". This may be used when
the notification is displayed in other surfaces (such as a status bar chip).

<br />

| Parameters ||
|---|---|
| `index` | `int`: either the index (0-based) of an item in `https://developer.android.com/reference/android/app/Notification.MetricStyle#getMetrics()`, or `https://developer.android.com/reference/android/app/Notification.MetricStyle#METRIC_INDEX_NONE` to indicate no `https://developer.android.com/reference/android/app/Notification.Metric` should be used for this purpose <br /> |

| Returns ||
|---|---|
| `https://developer.android.com/reference/android/app/Notification.MetricStyle` | This value cannot be `null`. <br /> |

### setMetrics

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

```
public Notification.MetricStyle setMetrics (List<Notification.Metric> metrics)
```

Sets the list of `https://developer.android.com/reference/android/app/Notification.Metric` instances for this `https://developer.android.com/reference/android/app/Notification.MetricStyle`, replacing
whatever was added before.

<br />

| Parameters ||
|---|---|
| `metrics` | `List`: This value cannot be `null`. <br /> |

| Returns ||
|---|---|
| `https://developer.android.com/reference/android/app/Notification.MetricStyle` | This value cannot be `null`. <br /> |

### toString

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

```
public String toString ()
```

Returns a string representation of the object.

<br />

| Returns ||
|---|---|
| `https://developer.android.com/reference/java/lang/String` | a string representation of the object. <br /> |