Сергій
не того тегнул, сори )
Сыктывкариум
только меняю.
Сергій
Я его не читаю, вроде.
так а как прогресс бар тогда меняет значение )
Ferrero
У меня такое было, но тогда прогресс проходил только 0 и 100
Ferrero
Прогресс реально обновляется нормально?
Сергій
только меняю.
менять тоже надо правильно
Сыктывкариум
Сыктывкариум
setProgress() в уиТреде
Сергій
setProgress() в уиТреде
уи тред может не увидеть изменений
Сергій
ok google: Java concurrency in practice
Ferrero
ok google: Java concurrency in practice
А разве runOnUi не синхронизирует?
Сергій
он просто вызывает код на уи потоке
Vitaly
Пытаюсь с помощью Picasso сохранить картинку как показано на скринщоте (через Target) Но вылезает ошибка, что параметр должен быть NotNull, однако эта ошибка вылезает внутри исходников Picasso Как можно это решить?
Vitaly
Ferrero
он просто вызывает код на уи потоке
С iOS значит спутал, там это все сделано через очереди круто
Ivansuper
что? )
synchronized (runOnUi) { ... } Что непонятного?
Ivansuper
(стеб)
Сергій
(стеб)
мой стебометр в ремонте
Ivansuper
С iOS значит спутал, там это все сделано через очереди круто
Здесь тоже будет очередь, в которую отправится Runnable, при вызове такого метода
Сыктывкариум
уи тред может не увидеть изменений
В том треде данные правильные.
Сыктывкариум
в логкат выводятнся нужные значения.
Сергій
В том треде данные правильные.
в каком "том"? тот что изменяет?
Сыктывкариум
Да. В уиТреде.
padmitriy
в логкат выводятнся нужные значения.
код скинь как setProgress делаешь
Сыктывкариум
Сергій
Да. В уиТреде.
перепроверь
Сыктывкариум
перепроверь
логкатом вывожу цифру и эту же цифру передаю в прогрессбар
Сыктывкариум
Да.
Сергій
может просто пока доходит очередь до сообщения прогресс выходит в 100
Сергій
Проверить бы как-нибудь...
попробуй вместо view.post() через view.getHandler().postAtFrontOfQueue()
Ferrero
Господи, сколько проблем то
padmitriy
попробуй вместо view.post() через view.getHandler().postAtFrontOfQueue()
чет в дебри уже лезешь, вангую что там всё проще
Сыктывкариум
может просто пока доходит очередь до сообщения прогресс выходит в 100
Вот походе на то. Логкат процесса обработки пробегает почти на 90%, когда появляется логкат из процесса обновления прогрессбара
Ivansuper
попробуй вместо view.post() через view.getHandler().postAtFrontOfQueue()
А не думали замерить время выполнения фонового процесса и проверить укладывается ли оно миллисекунд в 30?
Ivansuper
Постить наперед считается дурным
Ferrero
Я вообще не понимаю - ты запускаешь метод, а потом блочишь поток, типа ждёшь
Сергій
чет в дебри уже лезешь, вангую что там всё проще
мне кажется там просто проблема синхронизации )
Ferrero
Это вообще законно? Если метод в том же потоке
padmitriy
мне кажется там просто проблема синхронизации )
мне кажется там просто в ui потоке всё происходит
Сергій
Ivansuper
Мож код попросим
padmitriy
код уже просили, это секретная инфа
Сыктывкариум
Ivansuper
Код в студию! *типа якубович*
Сыктывкариум
https://pastebin.com/Hgd1yWNu
Ferrero
While(true)
Ivansuper
Искать вью в фоновом методе — бить по рукам
Сыктывкариум
Искать вью в фоновом методе — бить по рукам
Т.е. если я вынесу - проблема решится? )
Ivansuper
Возможно
Сыктывкариум
Сомневаюсь. Ибо изначально оно было вне фонового метода, но не работало. Потом я менял прогрессбар на другой - не заработало.
Ivansuper
While(true)
Это допустимо, если есть гарантированный бряк
Сыктывкариум
Могу вынести в инит-метод, если есть мнение, что может помочь
Ivansuper
Почему ты не найдешь вью в активности или в подготовке асинк операции, а потом к нему ссылаться в коде поста на юай потоке?
Сыктывкариум
Почему ты не найдешь вью в активности или в подготовке асинк операции, а потом к нему ссылаться в коде поста на юай потоке?
Так было в начале. Потом поменял прогрессбар на кастомный и для проверки объявил его тут.
Ivansuper
Вынеси его. А то непредсказуемые поведения вынесут тебя
Сыктывкариум
writeResponseBodyToDisk покажи как вызываешь
Call<ResponseBody> call = networkModule.webService().updateApplication(); call.enqueue(new Callback<ResponseBody>() {} в onResponse()
Ivansuper
Потом проверим что стало
Elron
pbDownload.setTotalProgress((int) (fileSize / 1024)); выполняется в другом потоке
Elron
лучше сделать вот так: private boolean writeResponseBodyToDisk(ResponseBody body, File outputFile, Handler handler) { и ему кидать runnable
padmitriy
Да.
то есть у тебя вся работа с записью в ui происходит?
Сыктывкариум
то есть у тебя вся работа с записью в ui происходит?
Чот я щас подумал, что получается да... Сам запрос к серверу идёт в фоне, а результат возвращаяется в УИ...
Ivansuper
Ну вот и приехали. Можно выходить из автобуса
Сыктывкариум
Всем огромное спасибо!
Ivansuper
Выноси вью со всеми ссылками, сделай копирование в фоне
Elron
/me вышел
Ivansuper
/me вышел
Да не нагоняй так
Elron
Привет, в гугл.плей на одно приложение может быть оформлена только одна подписка или несколько ?