io.flutter.plugin.common

## Interface EventChannel.StreamHandler

- Enclosing class:
    EventChannel

      public static interface EventChannel.StreamHandler

  Handler of stream setup and teardown requests.

  Implementations must be prepared to accept sequences of alternating calls to `#onListen(Object, EventSink)` and `onCancel(Object)`. Implementations should ideally consume no resources when the last such call is not `onListen`. In typical situations, this means that the implementation should register itself with platform-specific event sources `onListen` and deregister again `onCancel`.

- - ### Method Summary

    All Methods Instance Methods Abstract Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `onCancel(Object arguments)` Handles a request to tear down the most recently created event stream.
    `void` | `onListen(Object arguments, EventChannel.EventSink events)` Handles a request to set up an event stream.

- - ### Method Detail

    - #### onListen

          void onListen(Object arguments,
                        EventChannel.EventSink events)

      Handles a request to set up an event stream.

      Any uncaught exception thrown by this method will be caught by the channel implementation and logged. An error result message will be sent back to Flutter.

      Parameters:
        `arguments` - stream configuration arguments, possibly null.
        `events` - an `EventChannel.EventSink` for emitting events to the Flutter receiver.

    - #### onCancel

          void onCancel(Object arguments)

      Handles a request to tear down the most recently created event stream.

      Any uncaught exception thrown by this method will be caught by the channel implementation and logged. An error result message will be sent back to Flutter.

      The channel implementation may call this method with null arguments to separate a pair of two consecutive set up requests. Such request pairs may occur during Flutter hot restart. Any uncaught exception thrown in this situation will be logged without notifying Flutter.

      Parameters:
        `arguments` - stream configuration arguments, possibly null.