Package 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, EventChannel.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

  Modifier and Type
  Method
  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 Details

  - ### 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.