我刚刚在我的应用程序中实现了Flutter BLoc库,但是我遇到了问题。
这是我需要做的:
当蓝牙打开时,我发送一个事件“ connectTothedevice”,并且蓝牙集团连接到该设备。然后,我发送一个事件sendMyDataEvent,然后蓝牙集团发送我的数据。但是,当蓝牙断开连接时,我将发送事件“ DisconnectEvent”,并且需要清除正在执行的操作并进入初始状态。
但这是我的问题:当我拥有sendMyDataEvent时,蓝牙块会多次执行这一行代码
await bluetoothCharacteristicToSend.write(trame);
因此,当蓝牙关闭时,我在此行处于阻塞状态,因为我在mapEventToState中处于阻塞状态,所以我无法再对其他事件做出反应了。
这是我的调试日志:
Bluetooth b : bluetooth state is ON
Bluetooth bloc : new event : Instance of 'FindFlyKeysDevice'
Bluetooth bloc : new event : Instance of 'SendMorceauEvent'
Bluetooth b : bluetooth state is OFF
Bluetooth b : bluetooth state is ON
因此,我考虑过解决该问题的可能性很小,但我不知道这是否是好的做法以及如何解决: