Interface BinaryMessenger
-
- All Known Implementing Classes:
DartExecutor,FlutterNativeView,FlutterView
public interface BinaryMessengerFacility for communicating with Flutter using asynchronous message passing with binary messages. The Flutter Dart code should use BinaryMessages to participate.BinaryMessengeris expected to be utilized from a single thread throughout the duration of its existence. If created on the main thread, then all invocations should take place on the main thread. If created on a background thread, then all invocations should take place on that background thread.
-
-
Nested Class Summary
Nested Classes Modifier and Type Interface Description static interfaceBinaryMessenger.BinaryMessageHandlerHandler for incoming binary messages from Flutter.static interfaceBinaryMessenger.BinaryReplyBinary message reply callback.static interfaceBinaryMessenger.TaskQueueAn abstraction over the threading policy used to invoke message handlers.
-
Method Summary
All Methods Instance Methods Abstract Methods Default Methods Modifier and Type Method Description default BinaryMessenger.TaskQueuemakeBackgroundTaskQueue()Creates a TaskQueue that executes the tasks serially on a background thread.voidsend(String channel, ByteBuffer message)Sends a binary message to the Flutter application.voidsend(String channel, ByteBuffer message, BinaryMessenger.BinaryReply callback)Sends a binary message to the Flutter application, optionally expecting a reply.voidsetMessageHandler(String channel, BinaryMessenger.BinaryMessageHandler handler)Registers a handler to be invoked when the Flutter application sends a message to its host platform.default voidsetMessageHandler(String channel, BinaryMessenger.BinaryMessageHandler handler, BinaryMessenger.TaskQueue taskQueue)Registers a handler to be invoked when the Flutter application sends a message to its host platform.
-
-
-
Method Detail
-
makeBackgroundTaskQueue
@UiThread default BinaryMessenger.TaskQueue makeBackgroundTaskQueue()
Creates a TaskQueue that executes the tasks serially on a background thread.There is no guarantee that the tasks will execute on the same thread, just that execution is serial.
-
send
@UiThread void send(@NonNull String channel, @Nullable ByteBuffer message)Sends a binary message to the Flutter application.- Parameters:
channel- the nameStringof the logical channel used for the message.message- the message payload, a direct-allocatedByteBufferwith the message bytes between position zero and current position, or null.
-
send
@UiThread void send(@NonNull String channel, @Nullable ByteBuffer message, @Nullable BinaryMessenger.BinaryReply callback)Sends a binary message to the Flutter application, optionally expecting a reply.Any uncaught exception thrown by the reply callback will be caught and logged.
- Parameters:
channel- the nameStringof the logical channel used for the message.message- the message payload, a direct-allocatedByteBufferwith the message bytes between position zero and current position, or null.callback- aBinaryMessenger.BinaryReplycallback invoked when the Flutter application responds to the message, possibly null.
-
setMessageHandler
@UiThread void setMessageHandler(@NonNull String channel, @Nullable BinaryMessenger.BinaryMessageHandler handler)Registers a handler to be invoked when the Flutter application sends a message to its host platform.Registration overwrites any previous registration for the same channel name. Use a null handler to deregister.
If no handler has been registered for a particular channel, any incoming message on that channel will be handled silently by sending a null reply.
- Parameters:
channel- the nameStringof the channel.handler- aBinaryMessenger.BinaryMessageHandlerto be invoked on incoming messages, or null.
-
setMessageHandler
@UiThread default void setMessageHandler(@NonNull String channel, @Nullable BinaryMessenger.BinaryMessageHandler handler, @Nullable BinaryMessenger.TaskQueue taskQueue)Registers a handler to be invoked when the Flutter application sends a message to its host platform.Registration overwrites any previous registration for the same channel name. Use a null handler to deregister.
If no handler has been registered for a particular channel, any incoming message on that channel will be handled silently by sending a null reply.
- Parameters:
channel- the nameStringof the channel.handler- aBinaryMessenger.BinaryMessageHandlerto be invoked on incoming messages, or null.taskQueue- aBinaryMessenger.TaskQueuethat specifies what thread will execute the handler. Specifying null means execute on the platform thread.
-
-