Size: a a a

2021 June 14

В

Виктор in Kotlin Start
А каким образом? Или вы имеете ввиду сделать флоу, который будет следить за состоянием и менять какую-то переменную-триггер? Хотя, чет я фигню сейчас написал. Тогда бы можно было просто при смене состояния переменную-триггер менять без стороннего флоу.
источник

BP

Bogdan Panchenko in Kotlin Start
А как это состояние реализовано ? Можно сделать из него StateFlow (как вариант) ?
источник

BP

Bogdan Panchenko in Kotlin Start
Хотя нет, он не очень поможет. Но что-то советовать можно узнав как ваше состояние меняется, и что это
источник

В

Виктор in Kotlin Start
Я тоже подумывал об этом, но вряд-ли. Дам чуть большой контекст. Мне нужно из медиаплеера получать прогресс воспроизведения в реальном времени. Встроенных observable он не предоставляет, поэтому пришлось делать самому. В целом, все работает хорошо с помощью flow{}.destinctUntilChanged(). Сейчас он у меня стартует при старте сервиса, что я только сейчас осознал нецелесообразным. Думаю, что перенесу его старт в старт самого плеера, но, хотелось бы, полного контроля над ним. Но, полагаю, это вряд-ли возможно.
источник

BP

Bogdan Panchenko in Kotlin Start
Ну да, наверное проще будет пересоздавать
источник

BP

Bogdan Panchenko in Kotlin Start
Это единственное что кажется возможным. Есть конечно вариант в проекте чекать состояние, если все ок - делаем что нужно, иначе засыпаем на n.

Но даже если вам такое подходит я бы не стал такое городить
источник

В

Виктор in Kotlin Start
Понял. Спасибо за ответ.
источник

BP

Bogdan Panchenko in Kotlin Start
*в collect
источник

BP

Bogdan Panchenko in Kotlin Start
И да, если тут не простая конструкция (если будет произведен емит, даже если коллектор не просит), то это не сработает
источник

a

awawa in Kotlin Start
Можно сделать второй флоу с фильтром, в котором просто проверять состяние. Типа:

val newFlow = someFlow.filter { state == someState }


Тогда в коллектор не будут прилетать значения, если состяние не подходящее.
источник

a

awawa in Kotlin Start
В коллектор  newFlow*
источник

В

Виктор in Kotlin Start
Хм, спасибо за вариант)
источник

BP

Bogdan Panchenko in Kotlin Start
Но emit то будет. Если там тяжёлая операция то такой вариант может не подойти. А так хороший вариант
источник
2021 June 15

FG

Fuad Garayev in Kotlin Start
У меня в джава имеется два потока которые стартуют в в методе onStart(), и в методе onStop() эти потоки джоинятся. в курутинах существует такой класс ?который также может джоинется и который можно запускать
источник

AM

Andrew Mikhaylov in Kotlin Start
Почитайте, как пользоваться скоупами. Вы создадите скоуп, в старте запустите на нём задачи, в стопе скоуп закроете, и будет у вас ровно такое же поведение.
источник

AM

Andrew Mikhaylov in Kotlin Start
Не помню, правда, может, в androidx даже готовые скоупы уже есть.
источник

FG

Fuad Garayev in Kotlin Start
Это методы override,класс имплементирцется от каллбека
источник

FG

Fuad Garayev in Kotlin Start
А как разные скоупы будут ожидать результаты?
источник

FG

Fuad Garayev in Kotlin Start
Ведь как я говорил в методе стоп,потоки джоинятся
источник

AM

Andrew Mikhaylov in Kotlin Start
Пойдите гайд по корутинам почитайте, пожалуйста.
источник