Как повторно запустить flutter blo c или повторно запустить его функцию mapEventToState - PullRequest
0 голосов
/ 27 мая 2020

Я только что реализовал библиотеку flutter BLo c в своем приложении, и у меня возникла проблема.

Вот что мне нужно сделать:

Когда Bluetooth включен, я отправьте событие «connectTothedevice», и bluetooth blo c подключится к устройству. Затем я отправляю событие sendMyDataEvent, и bluetooth blo c отправляет мои данные. Но когда bluetooth отключается, я отправляю событие DisconnectEvent, и мне нужно очистить то, что я делал, и перевести go в исходное состояние.

Но вот моя проблема: bluetooth blo c выполняет много раз эту строку кода, когда у меня есть sendMyDataEvent

await bluetoothCharacteristicToSend.write(trame);

Следовательно, когда bluetooth выключается, я блокируюсь на этой строке, и я больше не могу реагировать на другие события, так как я заблокирован в 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

Итак, я подумал о нескольких вариантах решения проблемы, но я не знаю, является ли это хорошей практикой и как это сделать:

  • Переопределить bluetooth blo c
  • Остановить вызов ожидания
...