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

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

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

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

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

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

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

7 ответов

14 просмотров

постоянно делать что-то в фоне мобильные оси не дают. Либо слать пуши вместо фонового вебсокета (самый правильный вариант), либо смотреть в сторону 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 - она не знает про существование дарта есть одноименная либа для флаттера и потенциально она могла бы запустить новую виртуалку в бекграунде (скоре всего так) далее ты говоришь про переменную и тут я теряюсь в догадках о чём ты

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

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

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта