#android #flutter #background-process #boot #message-passing
#Android #flutter #фоновый процесс #загрузка #передача сообщений
Вопрос:
Мне нужно добавить встроенную липкую фоновую службу в приложение flutter, чтобы достичь 2 вещей:
- Запуск во время загрузки и работа в фоновом режиме на неопределенный срок
- Обменивайтесь данными с основной активностью Dart в режиме передачи сообщений
Однако я не могу найти какую-либо полезную документацию. Похоже, что на данный момент вам нужно выбрать, перейти на полностью нативный или отказаться от использования низкоуровневых функций и сосредоточиться только на пользовательском интерфейсе (пока кто-нибудь не вытащит конкретный плагин из шляпы).).
Таким образом, мой вопрос заключается в следующем: каков самый простой способ добиться такого рода интеграции, начиная с базового проекта flutter?
Спасибо
Комментарии:
1. Может быть, создать фоновый процесс, который сохраняет в SharedPrefs, который будет средством обмена данными из службы в пользовательский интерфейс? Или вы могли бы использовать свой собственный сетевой API для обмена данными, если это имеет больше смысла для вашего варианта использования => medium.com/vrt-digital-studio/flutter-workmanager-81e0cfbd6f6e
2. Ну, да, но на самом деле нет. Эта служба будет поддерживать постоянное соединение с websocket. Системы передачи сообщений следует использовать для передачи сообщений из пользовательского интерфейса в websocket и наоборот
3. iOS, вероятно, не гарантирует неопределенный процесс. У вас есть окно возможностей, чтобы что-то делать. Android, возможно, вам это сойдет с рук. Возможно, вы могли бы выполнить Future из фонового процесса, который возвращается только после закрытия сокета. Если вы никогда не закроете сокет, будущее никогда не вернется, и, возможно, код Flutter продолжает выполняться «бесконечно». Я никогда не пробовал это сам, чтобы доказать это.
4. Да, идея определенно что-то в этом роде. Однако давайте рассмотрим пример приложения для обмена мгновенными сообщениями, такого как Telegram или Whatsapp. Как они могут управлять статусом онлайн и системой доставки сообщений? Где-то должен быть фоновый процесс, который обрабатывает функцию сетевого взаимодействия / уведомления.
5. Я полагаю, что IM используют фоновые процессы для регистрации на сервере. Сервер отправляет уведомление. Когда устройство активирует прослушиватель приложения, появится уведомление.