Added in [API level 30](https://developer.android.com/guide/topics/manifest/uses-sdk-element#ApiLevels) Summary: [Methods](https://developer.android.com/reference/java/util/concurrent/Flow.Subscriber#pubmethods)

# Flow.Subscriber

` public static interface Flow.Subscriber `   
` `

|---|
| java.util.concurrent.Flow.Subscriber\<T\> |

Known indirect subclasses [Flow.Processor](https://developer.android.com/reference/java/util/concurrent/Flow.Processor)\<T, R\> [Flow.Processor](https://developer.android.com/reference/java/util/concurrent/Flow.Processor)\<T, R\> A component that acts as both a Subscriber and Publisher.   

*** ** * ** ***

A receiver of messages. The methods in this interface are invoked in strict sequential order for each `https://developer.android.com/reference/java/util/concurrent/Flow.Subscription`.

## Summary

| ### Public methods ||
|---|---|
| ` abstract void` | ` https://developer.android.com/reference/java/util/concurrent/Flow.Subscriber#onComplete()() ` Method invoked when it is known that no additional Subscriber method invocations will occur for a Subscription that is not already terminated by error, after which no other Subscriber methods are invoked by the Subscription. |
| ` abstract void` | ` https://developer.android.com/reference/java/util/concurrent/Flow.Subscriber#onError(java.lang.Throwable)(https://developer.android.com/reference/java/lang/Throwable throwable) ` Method invoked upon an unrecoverable error encountered by a Publisher or Subscription, after which no other Subscriber methods are invoked by the Subscription. |
| ` abstract void` | ` https://developer.android.com/reference/java/util/concurrent/Flow.Subscriber#onNext(T)(T item) ` Method invoked with a Subscription's next item. |
| ` abstract void` | ` https://developer.android.com/reference/java/util/concurrent/Flow.Subscriber#onSubscribe(java.util.concurrent.Flow.Subscription)(https://developer.android.com/reference/java/util/concurrent/Flow.Subscription subscription) ` Method invoked prior to invoking any other Subscriber methods for the given Subscription. |

## Public methods

### onComplete

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

```
public abstract void onComplete ()
```

Method invoked when it is known that no additional Subscriber method invocations will occur for a Subscription that is not already terminated by error, after which no other Subscriber methods are invoked by the Subscription. If this method throws an exception, resulting behavior is undefined.

<br />

### onError

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

```
public abstract void onError (Throwable throwable)
```

Method invoked upon an unrecoverable error encountered by a Publisher or Subscription, after which no other Subscriber methods are invoked by the Subscription. If this method itself throws an exception, resulting behavior is undefined.

<br />

| Parameters ||
|---|---|
| `throwable` | `Throwable`: the exception <br /> |

### onNext

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

```
public abstract void onNext (T item)
```

Method invoked with a Subscription's next item. If this method throws an exception, resulting behavior is not guaranteed, but may cause the Subscription to be cancelled.

<br />

| Parameters ||
|---|---|
| `item` | `T`: the item <br /> |

### onSubscribe

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

```
public abstract void onSubscribe (Flow.Subscription subscription)
```

Method invoked prior to invoking any other Subscriber methods for the given Subscription. If this method throws an exception, resulting behavior is not guaranteed, but may cause the Subscription not to be established or to be cancelled.

Typically, implementations of this method invoke `subscription.request` to enable receiving items.

<br />

| Parameters ||
|---|---|
| `subscription` | `Flow.Subscription`: a new subscription <br /> |