Valentyn
Почитай про цепочки воркеров
Глянул, это имеешь в виду соединить в цепочку OneTimeWorkRequest и PeriodicWorkRequest? (С указанием воркеру из PeriodicWorkRequest, чтобы тот остановил периодическое выполнение самого себя, если в кеше ничего не осталось)
Anonymous
Ребят, как в котлине вернуть что-то подобное как промис (желательно нативное)?
M
Future/CompletableFuture из Java
Anonymous
Я использую функцию с запросом, мне нужно чтобы она возвращала булин, тру если запрос прошел, использую okhttp
M
Есть еще Deferred из coroutines
Alexander
Глянул, это имеешь в виду соединить в цепочку OneTimeWorkRequest и PeriodicWorkRequest? (С указанием воркеру из PeriodicWorkRequest, чтобы тот остановил периодическое выполнение самого себя, если в кеше ничего не осталось)
Да, только с one time req это все разруливай, оттуда уже заводи переодического . У periodic скудноватый стек колбэков , поэтому цепочки с ним будут проблемными
Valentyn
Да, только с one time req это все разруливай, оттуда уже заводи переодического . У periodic скудноватый стек колбэков , поэтому цепочки с ним будут проблемными
Понял, пробую one time req, если у него не получилось, то оттуда завожу уже periodic time req, если one time req не справился. И .beginWith(OneTimReq) .then(PeriodicTimeReq) не делать. Спасибо за ответы.
Андрей
Люди, в Котлине при исполнении кода companion object в памяти появляется ещё один объект вдовесок к основному объекту класса?
Андрей
При инициализации появляется.
То есть, хранить константы, в таком случае, лучше вне класса? (Но в этом файле)
Андрей
±
Почему так неоднозначно?)
Mike
Почему так неоднозначно?)
Потому что топ-левел — это отдельный класс.
Андрей
Потому что топ-левел — это отдельный класс.
То есть, все равно получается дополнительный объект?
Андрей
±
Просто я не могу понять, как правильно хранить константы взамен public static final джавы
Андрей
Вот точно не public.
В джаве я активно использовал package-private, но в котлине его нет(
Андрей
Константы должны быть приватными.
То есть, если у меня одна константа используется в двух классах, то мне надо на каждый класс сделать свою константу?
Андрей
Зависит от кода.
Я использую Navigation Architecture Component. Там, чтобы передать аргумент фрагменту нужен ключ для объекта, передаваемого в Bundle, нужен ключ, как известно. Раньше я использовал статический метод моего класса фрагмента newInstance(), в этом же классе хранил константу ключ для Bundle
Mike
Ууу, какое жуткое легаси этот навигейшен с бандлами.
Андрей
Mike
Так как мне быть с константами?)
Да как больше нравится)
Kopusha
если публичная и у тебя уже есть companion object для newInstance(), то туда и закинь
Андрей
Да как больше нравится)
И все же как-то странно хранить константы в специально отведённом для этого объекте Тот же метод newInstance() мне пришлось бы тоже в объект-компаньон совать?)
Kopusha
будет
Андрей
будет
То есть в Котлине без него никак не обойтись, получается?)
Kopusha
То есть в Котлине без него никак не обойтись, получается?)
самому противно, но выходит так. Конкретно эта часть в котлине выглядит жопно.
Андрей
Эээ, ну статик тоже был странный) те же яйца
Но, вроде, статик не создавал лишний объект, значит, памяти меньше потреблял, или я что-то путаю?
Андрей
Всё так, но это копейки
Просто препод в университете надрочил, что надо использовать памяти столько, сколько нужно, писали программы с типами byte вместо int и тд)
Kopusha
уверен, где-то в embedded разработке этот твой навык оценят
Андрей
Ахах, ну да)
Kopusha
на jvm это будет экономией на спичках, хороший препод бы это объяснил, чтоб вы не занимались херней)
Андрей
А для обычной внутриклассовой константы надо писать private val?
Андрей
И без верхнего регистра и тд, так как студия ругается
Dmitriy
Гайс, почему на некоторых девайсах активити сбрасывается(наверно опять вызывается onCreate) после сворачивания апп?
Андрей
@kotlin_start
Понял)
Anonymous
windows mobile мертв?
Вазген
Dmitriy
Наверное или вызывается?
Я методы onStart, onResume, onRestart, onStop, onPause никак не переопределял На моем устройстве все ок, но поступила информация что есть проблемные
Вазген
AJIEwa
Гайс, почему на некоторых девайсах активити сбрасывается(наверно опять вызывается onCreate) после сворачивания апп?
потому что памяти не хватает, потому что настройки языка и т.д. сменилось и т.д. вы обрабатываете вообще пересоздание активити? если нет, чего ныть
Dmitriy
В большей степени наверное всё-таки от реализации зависит. А onBackPressed обрабатываете?
override fun onBackPressed() { print("ON BACK PRESSED") } Чтобы не выходило на прошлую вьюху
Вазген
Что бы не выходило на прошлую вьюху можно просто очищать стек вызова, при открытии
Вазген
А так да, в большинстве случаем память - система выгружает ваше окно, для освобождения памяти под другие приложения
Dmitriy
А так да, в большинстве случаем память - система выгружает ваше окно, для освобождения памяти под другие приложения
У меня RegaActivity(там несколько шагов регистрации имя, фамилия и тд). onBackPressed будет переходить на прошлый шаг Мне получается надо сохранять эти шаги регистрации на случай пересоздания активити?
Вазген
Или может быть ещё такая мысль, странная и маловероятная просто: пользователь может думать, что сворачивает окно, а на самом деле нажимает кнопку "назад" ( просто пользователь тупой), вызывать нечего и окно просто щакрывается
Вазген
И при запуске просто всё по новой
Dmitriy
В этом знач ошибка? Сказали именно это активити сбрасывается а не приложение
Вазген
Иначе это отрицательные мнение о приложении составит у пользователя, а соответственно и отзывы такие же и отток пользователей
Dmitriy
Понял принял Весь класс пересоздается или только выполняется onCreate заново?
Вазген
Посмотрите про жизненный цыкл активити. Там ведь все есть.
Вазген
OnCreate вызывается каждый раз, когда создается класс
Вазген
А соответственно и весь стек вызова методов
Dmitriy
Ага я смотрел, думаю где сохранять прогресс, в этом же классе или нет
Вазген
Какие то текстовые данные?
Dmitriy
Да
Вазген
Если данные заполнения полей то думаю самый простой вариант использование android preference.
Вазген
Сохранять шаг, который выполняют и данные, которые заполнили. При создании окна проверять есть ли там данные о заполнении и о шаге: есть - заполняем до показа и показываем соответственно нужный шаг, нет - устанавливаем начальную точку. После нажатия на копку регистрации и успеха - очищаем данные, шаг
Dmitriy
Спасибо, дальше уже разбирусь)
Вазген
Думаю можно так же очищать и при нажатии кнопки "назад" пользователь как бы намеренно ведь хочет прервать регистрацию, но обязательно вывести сообщение и предупредить)
Dmitriy
На каждом шаге по картинке на пол экрана, поэтому походу оно хочет обновляться
Вазген
Воу
Вазген
А каждый шаг как меняете?
Вазген
Фрагменты?
Вазген
На каждом шаге по картинке на пол экрана, поэтому походу оно хочет обновляться
Не, ну на телефоне реально памяти очень мало может быть
Вазген
Сейчас ведь до сих пор устройства и с 2 и с 1 гигами памяти ещё есть
Вазген
У меня 4 гига оперативки и мне кажется, что этого всё-равно мало иногда, а там таки вообще