Class BasicMessageChannel<T>
Messages are encoded into binary before being sent, and binary messages received are decoded
into Java objects. The MessageCodec
used must be compatible with the one used by the
Flutter application. This can be achieved by creating a BasicMessageChannel
counterpart of this channel on the Dart side. The static Java type of messages sent and received
is Object
, but only values supported by the specified MessageCodec
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
Modifier and TypeClassDescriptionstatic interface
A handler of incoming messages.static interface
Message reply callback. -
Field Summary
-
Constructor Summary
ConstructorDescriptionBasicMessageChannel
(BinaryMessenger messenger, String name, MessageCodec<T> codec) Creates a new channel associated with the specifiedBinaryMessenger
and with the specified name andMessageCodec
.BasicMessageChannel
(BinaryMessenger messenger, String name, MessageCodec<T> codec, BinaryMessenger.TaskQueue taskQueue) Creates a new channel associated with the specifiedBinaryMessenger
and with the specified name andMessageCodec
. -
Method Summary
Modifier and TypeMethodDescriptionvoid
resizeChannelBuffer
(int newSize) Adjusts the number of messages that will get buffered when sending messages to channels that aren't fully set up yet.static void
resizeChannelBuffer
(BinaryMessenger messenger, String channel, int newSize) Adjusts the number of messages that will get buffered when sending messages to channels that aren't fully set up yet.void
Sends the specified message to the Flutter application on this channel.void
send
(T message, BasicMessageChannel.Reply<T> callback) Sends the specified message to the Flutter application, optionally expecting a reply.void
Registers a message handler on this channel for receiving messages sent from the Flutter application.void
setWarnsOnChannelOverflow
(boolean warns) Toggles whether the channel should show warning messages when discarding messages due to overflow.static void
setWarnsOnChannelOverflow
(BinaryMessenger messenger, String channel, boolean warns) Toggles whether the channel should show warning messages when discarding messages due to overflow.
-
Field Details
-
CHANNEL_BUFFERS_CHANNEL
- See Also:
-
-
Constructor Details
-
BasicMessageChannel
public BasicMessageChannel(@NonNull BinaryMessenger messenger, @NonNull String name, @NonNull MessageCodec<T> codec) Creates a new channel associated with the specifiedBinaryMessenger
and with the specified name andMessageCodec
.- Parameters:
messenger
- aBinaryMessenger
.name
- a channel name String.codec
- aMessageCodec
.
-
BasicMessageChannel
public BasicMessageChannel(@NonNull BinaryMessenger messenger, @NonNull String name, @NonNull MessageCodec<T> codec, BinaryMessenger.TaskQueue taskQueue) Creates a new channel associated with the specifiedBinaryMessenger
and with the specified name andMessageCodec
.- Parameters:
messenger
- aBinaryMessenger
.name
- a channel name String.codec
- aMessageCodec
.taskQueue
- aBinaryMessenger.TaskQueue
that specifies what thread will execute the handler. Specifying null means execute on the platform thread. See alsoBinaryMessenger.makeBackgroundTaskQueue()
.
-
-
Method Details
-
send
Sends the specified message to the Flutter application on this channel.- Parameters:
message
- the message, possibly null.
-
send
Sends the specified message to the Flutter application, optionally expecting a reply.Any uncaught exception thrown by the reply callback will be caught and logged.
- Parameters:
message
- the message, possibly null.callback
- aBasicMessageChannel.Reply
callback, possibly null.
-
setMessageHandler
Registers a message handler on this channel for receiving messages sent from the Flutter application.Overrides any existing handler registration for (the name of) this channel.
If no handler has been registered, any incoming message on this channel will be handled silently by sending a null reply.
- Parameters:
handler
- aBasicMessageChannel.MessageHandler
, or null to deregister.
-
resizeChannelBuffer
public void resizeChannelBuffer(int newSize) Adjusts the number of messages that will get buffered when sending messages to channels that aren't fully set up yet. For example, the engine isn't running yet or the channel's message handler isn't set up on the Dart side yet. -
setWarnsOnChannelOverflow
public void setWarnsOnChannelOverflow(boolean warns) Toggles whether the channel should show warning messages when discarding messages due to overflow. When 'warns' is false the channel is expected to overflow and warning messages will not be shown. -
resizeChannelBuffer
public static void resizeChannelBuffer(@NonNull BinaryMessenger messenger, @NonNull String channel, int newSize) Adjusts the number of messages that will get buffered when sending messages to channels that aren't fully set up yet. For example, the engine isn't running yet or the channel's message handler isn't set up on the Dart side yet. -
setWarnsOnChannelOverflow
public static void setWarnsOnChannelOverflow(@NonNull BinaryMessenger messenger, @NonNull String channel, boolean warns) Toggles whether the channel should show warning messages when discarding messages due to overflow. When 'warns' is false the channel is expected to overflow and warning messages will not be shown.
-