169 похожих чатов

Ребятки, кто-нибудь работал с background процессами на флаттере? мне надо после

авторизации в приложении запустить в бг сервис, который подключится к каналу по websocket и будет его слушать
при получении сообщения по ws надо:
- если приложение в форграунде, то просто передать ему данные из ws сообщения
- если приложение свёрнуто или terminated, то выполнить вибрацию и воспроизвести звук (либо можно просто пуш создать)

нашел пакет workmanager, но там метод executeTask, насколько я понял, обязан завершиться и вернуть Future<bool>
соответственно, не пойму как запустить там ws подключение и слушать его продолжительно

также, не совсем уверен, как в изоляте узнать в каком состоянии сейчас само приложение

прошу направить на верный след)

p.s.
приложение только под android
публиковаться не будет, это сервисное приложение, просто .apk будет ставиться на устройства заказчика

7 ответов

4 просмотра

постоянно делать что-то в фоне мобильные оси не дают. Либо слать пуши вместо фонового вебсокета (самый правильный вариант), либо смотреть в сторону foreground service на андроиде (раньше такое было, но потом они что-то там меняли, так что не уверен, в каком сейчас это состоянии)

Dmitry- Автор вопроса
Kirill Bubochkin
постоянно делать что-то в фоне мобильные оси не да...

понял, спасибо большое) ну, с пушами даже проще реализация будет

я бы не верил на слово, что такое сделать нельзя если заказчик ставит срок в день то да нельзя. если фича стоит того то нужно ресерчить вот статья по актуальному состоянию https://developer.android.com/guide/background там предлагают WorkManager (почему каждый раз нужно придумывать новые сущности...) а вот есть одноименный пакет https://pub.dev/packages/workmanager

Dmitry- Автор вопроса
Влод
я бы не верил на слово, что такое сделать нельзя е...

в гитхабе этого пакета есть issue, где как раз задавался вопрос "можно ли там крутить вебсокет" ответ - "нет" к тому же срок реализации 9 сентября так что уже сижу делаю через пуши

Dmitry
в гитхабе этого пакета есть issue, где как раз зад...

Таки лучше обрабатывай пуш дату и программно определяй что с ней делать, типа есть активити прилы запущенное данные туда передаешь и интент какой нить, нет активити - сохраняешь данные в бд и уведомление отображаешь, или данные вшиваешь в пуш уведомление, что бы по клику передать в прилу, но это не работает для онлайн чатов

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

Я так понял workmanager создаёт экземпляр виртуальной машины Дарта если его ещё нет. При обычном старте можно задать значение глобальной переменной. В случае если старт будет "холодным" то значение в переменной должно быть по умолчанию. Повесить туда ничего нельзя потому что после выполнения работы виртуальная машина убивается. Можно задачу выполнять максимально долго.

Руслан Габдрафиков
Я так понял workmanager создаёт экземпляр виртуаль...

есть сущность андроидная называемая WorkManager - она не знает про существование дарта есть одноименная либа для флаттера и потенциально она могла бы запустить новую виртуалку в бекграунде (скоре всего так) далее ты говоришь про переменную и тут я теряюсь в догадках о чём ты

Похожие вопросы

Обсуждают сегодня

@MrMiscipitlick А можешь макрос написать, который будет вычислять смещение относительно переданных меток? Просто .label1-.label2, и вернуть значение.
КТ315
35
я не магистр хаскеля, но разве не может лейзи тип конвертнуться в не-лейзи запросив вычисление содержимого прям при инициализации?
deadgnom32 λ madao
100
А еще в перле можно уже @arr1 + @arr2?
Sergei Zhmylove
53
Подобного рода ;Следующие три строки это директивы ассемблера, ;которые можно не задавать, т.к.работаем в Visual Studio. ;Символ ";" - это начало однострочного комментария ...
Егор Анелькин
3
Привет всем. появился вопрос. Разрабатываю сайт, в данный момент он запущен. Хостинг beget. Добавляю на сайт яндекс метрику с помощью полей client-settings (взято отсюда http...
Andrew
2
Подскажите, где смотреть результат выполнения программы? Код: ;.686 ;Система команд процессора 686 ;.MODEL FLAT,stdcall ;Модель памяти плоская, станда...
Егор Анелькин
5
еще вопрос, допустим мы создадим char массив из 10 элементов и присвоим ему через сканф 10 символов. и выведем все символы. Хотел спросить последний элемент /0 будет включать...
Anthem
11
открыть папку в проводнике: 1 - ShellExecute 2 - ExecuteProcess 3 - OpenDocument что лучше выбрать?
Alexey Kulakov
12
Где в Астане можно купить мясо для шашлыков?
Dancing Іңұқәһүғө
21
;.686 ;Система команд процессора 686 ;.MODEL FLAT,stdcall ;Модель памяти плоская, стандартный ;вызов процедуры ;option casemap:no...
Егор Анелькин
1
Карта сайта