Size: a a a

Kotlin Community

2020 August 01

AN

Alexander Nozik in Kotlin Community
Boris Vanin
да, я это читал и тоже с этой проблемой сталкивался не единыжды
но там проблема скорее проблема DslMarker
источник

BV

Boris Vanin in Kotlin Community
дслмаркер сам по себе неплох до какого-то момента, но очень уж не гибкий
источник

BV

Boris Vanin in Kotlin Community
да я про дслмаркер же
источник

i

index.html in Kotlin Community
Ребят подскажите пж, начинаю учить android разработку. Стоит ли еще учить java иди сделать ставку на kotlin?
источник

BV

Boris Vanin in Kotlin Community
index.html
Ребят подскажите пж, начинаю учить android разработку. Стоит ли еще учить java иди сделать ставку на kotlin?
Подозреваю, что язык программирования будет меньшей твоей проблемой
источник

i

index.html in Kotlin Community
Опа почему же?
источник

BV

Boris Vanin in Kotlin Community
index.html
Опа почему же?
Потому что самый гемор это сама платформа андроидная
источник

BV

Boris Vanin in Kotlin Community
А языки, на котлин всяко приятнее писать
источник

i

index.html in Kotlin Community
Все понял, спасибо)
источник

AN

Alexander Nozik in Kotlin Community
index.html
Ребят подскажите пж, начинаю учить android разработку. Стоит ли еще учить java иди сделать ставку на kotlin?
Стоит посомотреть документ из информации по чату, там все есть
источник

i

index.html in Kotlin Community
Благодарю
источник

AI

Arkadii Ivanov in Kotlin Community
Интересно, а это норм что этот код падает? https://pastebin.com/cDbVT9LL
Если сначала вызвать start() а потом stop(), на Андроид.
В моём понимании, Dispatchers.Main диспатчит задачи асинхронно. И мне кажется, если корутина отменена на главном потоке, то все запланированные задачи должны быть тоже отменены.
источник

AN

Alexander Nozik in Kotlin Community
Падает на чем? на lateinit? Если вы выполните их сразу друг за другом, то канал не успевает запуститься. Вы вообще в своем примере намешале сразу две или три вещи, которые нельзя делать
источник

AN

Alexander Nozik in Kotlin Community
Как минимум использовать lateinit без очень острой необходимости и устраивать неконтролируемые гонки. Мешать андроидные треды с корутинами я бы тоже не стал одобрять.
источник

AI

Arkadii Ivanov in Kotlin Community
Alexander Nozik
Падает на чем? на lateinit? Если вы выполните их сразу друг за другом, то канал не успевает запуститься. Вы вообще в своем примере намешале сразу две или три вещи, которые нельзя делать
Ну вот прям тот IllegalStateException и падает. Это специально адаптированный код, чтобы показать крэш. Кажется что если сделать эмиссию в канал channelFlow{} и сразу отменить, то это значение доходит до потребителя.
источник

AI

Arkadii Ivanov in Kotlin Community
Не смотря на асинхронный Main dispatcher
источник

AN

Alexander Nozik in Kotlin Community
Arkadii Ivanov
Ну вот прям тот IllegalStateException и падает. Это специально адаптированный код, чтобы показать крэш. Кажется что если сделать эмиссию в канал channelFlow{} и сразу отменить, то это значение доходит до потребителя.
Ну у вас гонка типичная. Диспетчер не при чем. Вы пытаетесь читать из канала когда он еще не успевает инициализироваться. Как раз потому что асинхронно
источник

AI

Arkadii Ivanov in Kotlin Community
Alexander Nozik
Ну у вас гонка типичная. Диспетчер не при чем. Вы пытаетесь читать из канала когда он еще не успевает инициализироваться. Как раз потому что асинхронно
Каким образом? Обе функции вызываются по нажатию кнопок, допустим
источник

AN

Alexander Nozik in Kotlin Community
Arkadii Ivanov
Каким образом? Обе функции вызываются по нажатию кнопок, допустим
Возьмите дебаггер и посмотрите порядок. Но так делать в любом случае нельзя.
источник

AI

Arkadii Ivanov in Kotlin Community
Alexander Nozik
Возьмите дебаггер и посмотрите порядок. Но так делать в любом случае нельзя.
Как так нельзя?
источник