Size: a a a

Kotlin Community

2020 November 11

Е

Евгений in Kotlin Community
саша сок #KotlinGang
зачем?
internal сделать и всё
да, я не говорил, что нужно. Тестировать нужно внешнее состояние а не внутренее)
источник

Д

Денис in Kotlin Community
Ну в общем надо клепать классы чтоб не страдать похоже
источник

с#

саша сок #KotlinGang... in Kotlin Community
Евгений
да, я не говорил, что нужно. Тестировать нужно внешнее состояние а не внутренее)
это да
источник

с#

саша сок #KotlinGang... in Kotlin Community
почему идея до сих пор не подсвечивает operator fun provideDelegate(...) ?
источник

A

Aleksandr in Kotlin Community
Всем привет. В корутинах 1.4 вместе с SharedFlow появилось поле subscriptionCount. У нас в приложении повсеместно используется примерно вот такой шаблон ItemsStore. Подскажите, как правильно слушать subscriptionCount? Сейчас он слушается в scope, в котором и другие джобы запускаются. Получается, что supervisor.cancelChildren() уже не вызовешь на onInactive(). Не будет ли утечек? Как мне кажется, было бы удобнее если бы StateFlow имел расширение onSubscriptionCountChanged(), но, наверное, я не вижу всех возможностей текущей реализации.
источник

RE

Roman Elizarov in Kotlin Community
Так а какой у вас жизненный цикл самого объекта ItemsStore? В каком scope он _сам_ живет?
источник

RE

Roman Elizarov in Kotlin Community
(Если ответ "он живет пока не придет GC и не заберет его", то используйте GlobalScope — так и будет)
источник

A

Aleksandr in Kotlin Community
Roman Elizarov
Так а какой у вас жизненный цикл самого объекта ItemsStore? В каком scope он _сам_ живет?
В основном он привязан к жизненному циклу Activity (Android).
источник

A

Aleksandr in Kotlin Community
Roman Elizarov
(Если ответ "он живет пока не придет GC и не заберет его", то используйте GlobalScope — так и будет)
Этот вариант тоже подходит. Получается GlobalScope никак не держит flow или job?
источник

AN

Alexander Nozik in Kotlin Community
Aleksandr
Этот вариант тоже подходит. Получается GlobalScope никак не держит flow или job?
Скоуп вообще ничего не держит. Это элемент дизайна, который позволяет об этом не думать.
источник

RE

Roman Elizarov in Kotlin Community
Сам GlobalScope не держит корутин. Её держит только то, что эта корутина ждет. А так как она у вас ждет обновление subscriptionCount, то как только ссылок на StateFlow не останется, то и всё тут.
источник

A

Aleksandr in Kotlin Community
Roman Elizarov
Сам GlobalScope не держит корутин. Её держит только то, что эта корутина ждет. А так как она у вас ждет обновление subscriptionCount, то как только ссылок на StateFlow не останется, то и всё тут.
Супер. Спасибо.
источник

M

Malik in Kotlin Community
Подскажите как вызвать такую функцию из Java

fun View.smt(block: (Int) -> Long) {}
источник

VP

Vladimir Petrakovich in Kotlin Community
Malik
Подскажите как вызвать такую функцию из Java

fun View.smt(block: (Int) -> Long) {}
FileKt.smt(view, i -> ...)
источник

AN

Alexander Nozik in Kotlin Community
а как вы их включаете?
источник

AN

Alexander Nozik in Kotlin Community
Судя по всем через JPS. Может все-таки градл возьмете?
источник

VP

Vladimir Petrakovich in Kotlin Community
Так они красные скорее всего потому что этих файлов нет. А нет их потому что это кэш gradle, из которого может что угодно пропадать.
Вы что сделать пытаетесь, fat jar?
источник

AN

Alexander Nozik in Kotlin Community
Vladimir Petrakovich
Так они красные скорее всего потому что этих файлов нет. А нет их потому что это кэш gradle, из которого может что угодно пропадать.
Вы что сделать пытаетесь, fat jar?
Там нет градла судя по всему вообще
источник

S

Sergey in Kotlin Community
Vladimir Petrakovich
Так они красные скорее всего потому что этих файлов нет. А нет их потому что это кэш gradle, из которого может что угодно пропадать.
Вы что сделать пытаетесь, fat jar?
да . (как я понимаю). При запуске через Intellg Idea все норм. а когда собираю артифакт и пытаюсь запустить падает с
java.lang.NoClassDefFoundError
источник

с#

саша сок #KotlinGang... in Kotlin Community
Sergey
да . (как я понимаю). При запуске через Intellg Idea все норм. а когда собираю артифакт и пытаюсь запустить падает с
java.lang.NoClassDefFoundError
сделайте fatJar через градл таск
источник