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

Джоб который при запуске корутины возвращается, например

// VM's member
var job: Job? = null

// ...

// called from onChange
viewModelScope.launch {
job?.cancel()
job = launch {
delay(300)
// do validation
job = null
}
}

22 ответов

15 просмотров
Arsen-(CeH9) Автор вопроса

viewModelScope из отдельной депенденси с ktx viewmodels вроде

он есть

а джоб не надо нигде создавать?

Arsen-(CeH9) Автор вопроса

job = launch

правильно сделал получается?

а зачем ты в лаунче его кенселишь?

мне так посоветовали сделать 🙂

обосновали зачем?)

нет, но я не просил, хотя тоже смутило

я такого просто не видел. и в этом смысла не вижу

Arsen-(CeH9) Автор вопроса

потому каждый ввод символа означает, что процесс ввода еще не завершен и старые таски нужно отменить, а сработать должна только последняя

А зачем внутри viewModelScope.launch запускать еще один launch? Почему не принять за job = viewModelScope.launch и его уже отменять или что то еще с jobом делать?

я не знаю…

Ну если внутри будет асинхронный код, время выполнения которого мы не сможем предсказать, то при нескольких выховах подряд может сначала выполниться третий, а уже после него - второй выхов (как пример). И в результате в ливдату сначала прилетит корректное последнее состояние, а потом уже неконсистентное второе и останется результат именно второго вызова, что некорректно.

ну просто у тебя уже запустилась корутина через viewModelScope.launch. Если бы там внутри надо было несколько задач параллельно сделать, то езе куда ни шло, но так странно, но может я чего то не догоняю конечно, потому решил уточнить

подскажите как бы Вы это сделали? https://t.me/android_ru/800624

Тут надо определиться - что значит "Закончит писать" - теряется фокус у editText, пользователь не вводит ничего уже какое то время, скрывается клавиатура, нажимается enter на клавиатуре?

Пользователя встречает фрагмент с формой для входа. Он вводит данные в верхний едиттекст (имя пользователя), далее: * ЛИБО через некоторое время после того, как он закончит (к примеру 1.5 секунды) * ЛИБО когда он нажимает Enter/Return и переходит на следующий edittext * ЛИБО когда он нажимает пальцем в поле нижнего edittext (пароль) идет проверка регулярным выражением И в случае, когда оно удовлетворяет паттерн регулярки, дать ему знать о том что такое имя пользователя потенциально есть в базе (это уже я сам). В ином случае, я показываю edittext.error.

Ну вот и ставь лиснеры на эти события)

сделал такую же с Job-ой, пасиба @ceh9_dev

Arsen-(CeH9) Автор вопроса

какую-то статью/пост зафигачил? такими приколами с таймером еще мой дед пользовался, х3 кому ты там Америку открыл

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

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

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
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
Карта сайта