Выбор ответа Middle Платформенные каналы обновлено

Flutter: EventChannel

Вопрос

Какой канал подходит для непрерывного потока данных с датчика пульса?

Попробуйте сами

Выберите вариант, и откроется разбор.

Показать ответ и разбор

Коротко

Правильный ответ: EventChannel: Stream в Dart и EventSink на платформе. EventChannel создан для потоков: подписка в Dart вызывает onListen у нативного StreamHandler, отмена вызывает onCancel.

Варианты ответа

  1. MethodChannel с вызовом каждые 100 мс по таймеру, это проще и надёжнее
  2. BasicMessageChannel с одним сообщением, которое платформа будет обновлять
  3. Канал не нужен: датчики доступны из Dart напрямую через dart:io
  4. EventChannel: Stream в Dart и EventSink на платформеправильный ответ

Разбор

EventChannel создан для потоков: подписка в Dart вызывает onListen у нативного StreamHandler, отмена вызывает onCancel. Опрос по таймеру тратит батарею и даёт задержку. BasicMessageChannel подходит для произвольного обмена сообщениями, но не даёт удобного Stream с подпиской и отменой. Датчики без нативного кода не доступны.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.