Сергій
Собери его в коде потом скопируй себе в консоль
Сергій
Например ComponentName cn = new ComponentName(context, WidgetProvider.class);
Сергій
Ярослав
причём наполовину, рабочие столы свайпаются, и док со статусбаром выезжают, а софт не реагирует
Сергій
ребутай
Ярослав
Например ComponentName cn = new ComponentName(context, WidgetProvider.class);
ComponentInfo{io.atomofiron.watchdog/io.atomofiron.watchdog.service.MyService} UPD: подставил, всё верно, выдаёт Error
Ярослав
при ошибке в компоненте было бы так $ adb shell am stop-service -n io.atomofiron.watchdog/io.atomofiron.watchdog.service.KekService Stopping service: Intent { cmp=io.atomofiron.watchdog/.service.KekService } Service not stopped: was not running.
Сергій
а точно есть такая комманда?
Сергій
https://stackoverflow.com/a/28983087
Сергій
> Service not stopped: was not running. 🤔
Ярослав
> Service not stopped: was not running. 🤔
читай сообщение сначала, эту ошибку выдаёт, если ошибиться в имени компонента
Ruslan
Ярослав
ну правильно, он тебе говорит что сервис не запущен
жаль тут материться и оскорбениями бросаться нельзя наверно
Сергій
вот актуальный выхлоп
может оно не может форграунд сервис кильнуть?
Яков
Подскажите, хочу выучить Котлин. Как лучше поступить. Сразу на действующем проекте учиться, или начать с чего-то маленького. Сколько у вас ушло время на переход на Котлин?)
Если хочешь не проходя курс перейти, то рекомендую посмотреть различия между Java и Котлин, а если хочешь курс пройти, рекомендую на Undacity, Google выложил хороший курс по разработке на Котлину
Сергій
у него приоритет как и у видимого приложения
Ярослав
может оно не может форграунд сервис кильнуть?
может, к сожалению гугл не добавили соответсвующее описание ошибки
Ruslan
вот актуальный выхлоп
ты не можешь остановить сервис который не запущен. Останавливать нечего
Ruslan
он запущен
а в логе говорит что нет
Яков
Подскажите, хочу выучить Котлин. Как лучше поступить. Сразу на действующем проекте учиться, или начать с чего-то маленького. Сколько у вас ушло время на переход на Котлин?)
Также есть хороший курс на Coursera от Политеха по Котлину для начинающих и курс от JetBrains для Java разработчиков, но в них не говорится про разработку на Котлине под Android, только про Котлин
Dyno
Вау, вот это находка. Этим тоже можно перехватывать реквесты и настройка очень простая, за 5 минут разобраться можно. И прямо с телефона смотрю реквесты и респонсы. найс https://play.google.com/store/apps/details?id=com.guoshi.httpcanary @PSA_98 , @DEADMC
.
хттпс ?)
Dyno
хттпс ?)
да вроде со всем работает
Andrey
привет! есть дoлгoиграющий фoнoвый тред, из кoтoрoгo есть интерес на вьюшке чегo-нибудь oтoбразить.. UI пoменять. такoе через WeakReference мoжнo сделать или как-тo ещё? или всё же лучше весь кoд пoмещать прямo в Activity, а в нём уже в нужнoе время в нужнoм месте делать вызoв runOnUiThread?
Denys
Проблемма в том, что делать если Activity закрылась?
Andrey
Проблемма в том, что делать если Activity закрылась?
либо прерывать тред, либо освобождать ресурсы, вьюхи, и переходить в "фоновый режим" без изменений UI
Алексей
а для чего они?
WeakReference - слабая ссылка. Нужна для того, чтобы в случае чего не держать прямых ссылок на объект. В вашем случае может быть полезно для передачи контекста какого-нибудь, чтобы последний в памяти не держался дольше, чем должен, но и только
Алексей
2. Корутины или треды?
Denys
Изменнения в UI можно делать только из Main потока. Тоесть, нужно использовать готовый/созданный Handler.
Алексей
Печально. Для тредов есть разные варианты - Handler (кажется, так оно называется), runOnUIThread
Andrey
Печально. Для тредов есть разные варианты - Handler (кажется, так оно называется), runOnUIThread
а с корутинами больше гибкости? хм, имеет смысл взглянуть на них пристальнее, благодарю!
Denys
В треде хранить на него WeakReference, чтобы не держать в памяти устройства ссылку на UI.
Алексей
Ну это помимо плюшек в виде немного другого стиля, типа многопоточности и прочего
Дурний Кіт
та ебат запускаешь сервис и доставляешь им результат
Дурний Кіт
кокорутины треды
Andrey
Изменнения в UI можно делать только из Main потока. Тоесть, нужно использовать готовый/созданный Handler.
опыты показывали, что не только из Main, но справедливости ради: - через раз - падает, - а когда не падает - ругается в логи! так что стабильнее оказался бест практис
Дурний Кіт
как доставляешь - хоть броадкасты регистрируешь на своём контексте
Алексей
та ебат запускаешь сервис и доставляешь им результат
На каждую операцию сервис не запустишь, да и не нужны они в большинстве случаев
Дурний Кіт
> долгоиграющий фоновый тред > на каждую операцию сервис не запустишь
Andrey
сервис можно пустить 1 раз, но тогда в нем держать поток, а вообще задача с пулом потоков
Алексей
> долгоиграющий фоновый тред > на каждую операцию сервис не запустишь
Ну если там задача, которая должна в фоне при закрытии приложения крутиться - да, оно того стоит
Andrey
Ну если там задача, которая должна в фоне при закрытии приложения крутиться - да, оно того стоит
в общем, благодарю всех за ответы, пока хватит пищи для размышлений..
Denys
в общем, благодарю всех за ответы, пока хватит пищи для размышлений..
Вот то, что вам нужно. https://developer.android.com/training/multiple-threads/communicate-ui
Denys
Но если есть время и желание - гляньте на корутины. Можно даже сделать два решения и сравнить. :)
Denys
У гугла даже есть кодлаб на эту тему.
Дурний Кіт
У гугла даже есть кодлаб на эту тему.
и у них там есть что-то кроме async'a, типо каналов? )
Denys
Denys
Channels - нет
Denys
Это пока еще эксперементальное API.
Алексей
Это пока еще эксперементальное API.
Основные каналы уже не экспериментальны
Алексей
насколько я помню, из каналов сейчас экспериментальны только BroadcastChannel
Denys
Основные каналы уже не экспериментальны
Хм, точно? Это доку не обновили? https://kotlinlang.org/docs/reference/coroutines/channels.html
Алексей
Хм, точно? Это доку не обновили? https://kotlinlang.org/docs/reference/coroutines/channels.html
Исходники гляньте:) всё экспериментальное помечено соответствующими аннотациями
Denys
Да, похоже на то. https://kotlin.github.io/kotlinx.coroutines/kotlinx-coroutines-core/kotlinx.coroutines.channels/-channel/index.html
Dyno
форкнул либу, кое что поменял (добавил класс), запушил. поменял название зависимости в модуле под свой юзернейм на гитхаб, засинкал, пытаюсь получить доступ к своему созданному классу в форке - его нет. наверное, это как-то не так делается?
Алексей
Андроид же?
Алексей
У вас там, скорее всего, градл
Dyno
Андроид же?
андроид
Алексей
В градл файлах есть раздел dependencies. В этом разделе зависимости. Пока вы не положите вашу форкнутую либу таким образом, чтобы её можно было подключить как зависимость и не подключите - в проекте она не появится