Package io.flutter.plugin.common

## Class EventChannel

- java.lang.Object
- - io.flutter.plugin.common.EventChannel

-     public final class EventChannel
      extends Object

  A named channel for communicating with the Flutter application using asynchronous event streams.

  Incoming requests for event stream setup are decoded from binary on receipt, and Java responses and events are encoded into binary before being transmitted back to Flutter. The `MethodCodec` used must be compatible with the one used by the Flutter application. This can be achieved by creating an EventChannel counterpart of this channel on the Dart side. The Java type of stream configuration arguments, events, and error details is `Object`, but only values supported by the specified `MethodCodec` can be used.

  The logical identity of the channel is given by its name. Identically named channels will interfere with each other's communication.

- - ### Nested Class Summary

    Nested Classes
    Modifier and Type | Class | Description
    --- | --- | ---
    `static interface` | `EventChannel.EventSink` | Event callback.
    `static interface` | `EventChannel.StreamHandler` | Handler of stream setup and teardown requests.

  - ### Constructor Summary

    Constructors
    Constructor | Description
    --- | ---
    `EventChannel​(BinaryMessenger messenger, String name)` | Creates a new channel associated with the specified `BinaryMessenger` and with the specified name and the standard `MethodCodec`.
    `EventChannel​(BinaryMessenger messenger, String name, MethodCodec codec)` | Creates a new channel associated with the specified `BinaryMessenger` and with the specified name and `MethodCodec`.
    `EventChannel​(BinaryMessenger messenger, String name, MethodCodec codec, BinaryMessenger.TaskQueue taskQueue)` | Creates a new channel associated with the specified `BinaryMessenger` and with the specified name and `MethodCodec`.

  - ### Method Summary

    All Methods Instance Methods Concrete Methods
    Modifier and Type | Method | Description
    --- | --- | ---
    `void` | `setStreamHandler​(EventChannel.StreamHandler handler)` | Registers a stream handler on this channel.

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### EventChannel

          public EventChannel​(BinaryMessenger messenger,
                              String name)

      Creates a new channel associated with the specified `BinaryMessenger` and with the specified name and the standard `MethodCodec`.
      Parameters:
        `messenger` - a `BinaryMessenger`.
        `name` - a channel name String.

    - #### EventChannel

          public EventChannel​(BinaryMessenger messenger,
                              String name,
                              MethodCodec codec)

      Creates a new channel associated with the specified `BinaryMessenger` and with the specified name and `MethodCodec`.
      Parameters:
        `messenger` - a `BinaryMessenger`.
        `name` - a channel name String.
        `codec` - a `MessageCodec`.

    - #### EventChannel

          public EventChannel​(BinaryMessenger messenger,
                              String name,
                              MethodCodec codec,
                              BinaryMessenger.TaskQueue taskQueue)

      Creates a new channel associated with the specified `BinaryMessenger` and with the specified name and `MethodCodec`.
      Parameters:
        `messenger` - a `BinaryMessenger`.
        `name` - a channel name String.
        `codec` - a `MessageCodec`.
        `taskQueue` - a `BinaryMessenger.TaskQueue` that specifies what thread will execute the handler. Specifying null means execute on the platform thread. See also `BinaryMessenger.makeBackgroundTaskQueue()`.

  - ### Method Detail

    - #### setStreamHandler

          @UiThread
          public void setStreamHandler​(EventChannel.StreamHandler handler)

      Registers a stream handler on this channel.

      Overrides any existing handler registration for (the name of) this channel.

      If no handler has been registered, any incoming stream setup requests will be handled silently by providing an empty stream.

      Parameters:
        `handler` - a `EventChannel.StreamHandler`, or null to deregister.