Flutter和原生交互---EventChannel

本文介绍了如何使用Flutter的EventChannel在Android原生代码和Flutter之间进行事件通信。通过创建一个单例类实现EventChannel,监听Android的重力感应等状态变化,并将这些事件通知给Flutter端,实现原生与Flutter的一对多广播通知功能。在Flutter应用的MainActivity中注册通信类,并在Flutter端订阅事件通道,接收到事件后打印输出。

EventChannel,用于Android原生事件流向Flutter端的发送,例如通过原生监听重力感应等状态变化后向Flutter发送通知,一对多通知,类似于原生广播

原生端实现代码:

1.实现EventChannel:单例类,通过sendEventData通知Flutter

package com.example.flutter_event_channel_plugin;

import android.util.Log;

import androidx.annotation.NonNull;

import io.flutter.embedding.engine.plugins.FlutterPlugin;
import io.flutter.plugin.common.EventChannel;

public class FlutterEventChannel implements FlutterPlugin, EventChannel.StreamHandler {
    public static final String CHANNEL_NAME = "event_channel_name";
    private EventChannel eventChannel;
    private EventChannel.EventSink eventSink;

    private static volatile FlutterEventChannel instance;

    private FlutterEventChannel () {
    }

    public static FlutterEventChannel getInstance() {
        if (instance == null) {
            synchronized (FlutterEventChannel .class) {
                if (instance == null) {
                    instance = new FlutterEventChannel ()
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值