Vitaly
Как лучше получать ответ с сервера, когда хочу изменить какие-то данные у пользователя? В виде целого объекта (точнее в JSON), либо тот же JSON, но содержащий лишь результат изменения данных (типо RESULT_OK или RESULT_CANCEL)?
Alexey
Тогда переименуйте чат что ли в андроид гуру, но джунс
Сергій
вмешаюсь в ваш спор, у кого нибудь работает эмулятор на процессорах AMD под Windows 10 Pro? https://android-developers.googleblog.com/2018/07/android-emulator-amd-processor-hyper-v.html у меня просто нету в настройках "Windows Hypervisor Platform" 🌚
Alexey
А то хз, что вас спросить можно не получив в ответку
Vitaly
Да, сервер меняет данные
Sergei
Поподробнее пожалуйста
Если тебе достаточно результата OK от сервера то зачем что то ещё слать
Vitaly
По сути достаточно, но это ненадёжно как мне кажется
Vitaly
Но возможно это и нормальная практика
Sergei
По сути достаточно, но это ненадёжно как мне кажется
Если приложение для ПК - не спорю , тут хоть каждый раз ленинскую библиотеку отправляй
Sergei
Но у нас телефон
Sergei
Нужно хорошо подумать нужны ли тебе данные
Sergei
ИМО, подход "а да на всякий случай отправлю" не подойдёт
Vitaly
А то хз, что вас спросить можно не получив в ответку
Срашивай, не бойся) Главное, что твой уровень знаний всё равно повысится) Я тоже джун, частенько тут ругаются на мои вопросы, но только так можно быстро улучшить свои навыки
Alexey
Срашивай, не бойся) Главное, что твой уровень знаний всё равно повысится) Я тоже джун, частенько тут ругаются на мои вопросы, но только так можно быстро улучшить свои навыки
Такой снобизм и чмырение на всех площадках просто отбивает желание изучать платформу и мешает популяризации. Как средство чтобы убирать конкурентов по работе - вполне)
Sergei
Таким образом в случае чего можно будет потраблшутить и клиент при этом не нагрузить
Mike
для простой апишки хватит и response-type: text/html, "OK"
201/204 тогда уж, чтобы тело не проверять :)
Sergei
И не надо ничего проверять
Sergei
Кроме ок/не ок
Vitaly
Соединение пишу на сокетах, так что API нету, только если самому писать отдельно
Konstantin
201/204 тогда уж, чтобы тело не проверять :)
это уже посложнее, хз че там у него за сервер
Mike
Кроме ок/не ок
я вроде об этом и говорю
Mike
нужно выбрать статус ответа без тела, если тело не предвидится
Vitaly
нужно выбрать статус ответа без тела, если тело не предвидится
Извини, туплю, не мог бы поподробнее объяснить
Vitaly
Тело - это объект ты имеешь ввиду?
Vitaly
Меня сбивает эта часть: "если тело не предвидется"
Konstantin
сервер не обязательно отдаст контентную часть (body)
Mike
Тело - это объект ты имеешь ввиду?
это имеет смысл только в контексте HTTP. В кастомном протоколе можно сделать как угодно.
Vitaly
Я так понял, что определёного и часто использующегося решения нет, поэтому я думаю для увеличения скорости отправки сообщений сделать просто статус-коды, если ответ от сервера не будет приходить в течение 5 секунд, то буду переподключаться и отправлять этот запрос заново) В итоге ответ будет выглядеть следующим образом: {"TYPE": "auth_phone", "result": "RESULT_OK"}
Vitaly
Надеюсь, что ничем критичным это не обернётся
Vitaly
Такая ситуация блин возникла: написал минимально живучий продукт (мессенджер), потом начал вкапываться в отдельные детали и в итоге всё переписываю частями
Vitaly
Надеюсь для Джуна это нормальная практика
Konstantin
Такая ситуация блин возникла: написал минимально живучий продукт (мессенджер), потом начал вкапываться в отдельные детали и в итоге всё переписываю частями
есть такое. когда делаешь наотъебись как то быстрее получается и даже работает мало мало, а когда по феншую - все переписываешь
Olexandr
как реализовать смену тул бара, как , например, тут в телеге, когда выделяешь сообщение?
Olexandr
action mode
спасибо
Anonymous
Приветствую! Только сегодня начал изучать уроки по андроид, чайник. Интересно знать с чего начать, изучению java или java script. Или это одно и тоже?
Я бы советовал начать с джавы. Читай базовые книжки, вроде хедферст джава для базовых знаний, потом пиши свои проекты. Параллельно можно смотреть видюшки (например джугру конференций) и читать статьи. Например на dzone.com или @java_articles
Anonymous
Спасибо, сохранил сообщение
Не за что. Кстати, по джаве для новичков ещё @javastart неплохой чат. Если не совсем детские вопросы - можно пытаться мне в ЛС писать, но не обещаю что всегда отвечу :)
Дмитрий
Такой снобизм и чмырение на всех площадках просто отбивает желание изучать платформу и мешает популяризации. Как средство чтобы убирать конкурентов по работе - вполне)
Вот почитал переписку и полностью поддерживаю тебя. Любой вопрос по теме это вопрос. Не нравится не читай не отвечай! Так что Konstantin имхо вы не правы!
Дмитрий
Спасибо, буду имет ввиду по вопросам)
Брюс Эккель Философия Джава очень годная книга, советую java начать изучать с нее. Андроид, как уже говорили, на старт андроиде, попорядку уроки потом курсы и уже будет общее представление о платформе и о темах для изучения. Потом можно браться за kotlin.
старт андроид это совсем для домохозяек имхо, классика это Big Nerd Ranch а не видосики где тебе объясняют как овощу
Dyno
Добрый вечер. А че оно падает? Грит, мол, CalledFromWrongThreadException . Так я ж в ThreadHandler хенлеру передаю Looper private MyWorkerThread mWorkerThread; private TextView txtView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); txtView = (TextView) findViewById(R.id.txt_view); Runnable task = new Runnable() { @Override public void run() { for (int i = 0; i < 100; i++) { SystemClock.sleep(500); txtView.setText("" + i); } } }; mWorkerThread = new MyWorkerThread("myWorkerThread"); mWorkerThread.start(); mWorkerThread.prepareHandler(); mWorkerThread.postTask(task); // mWorkerThread.postTask(task); // mWorkerThread.postTask(task); // mWorkerThread.postTask(task); } @Override protected void onDestroy() { mWorkerThread.quit(); super.onDestroy(); } } class MyWorkerThread extends HandlerThread { private Handler mWorkerHandler; public MyWorkerThread(String name) { super(name); } public void postTask(Runnable task){ mWorkerHandler.post(task); } public void prepareHandler(){ mWorkerHandler = new Handler(getLooper()); } }
Dyno
Потому что вьюхи можно трогать только в главном потоке
это я понимаю, поэтому я создал ThreadHandler, а внутри него Handler, которому в методе prepareHanlder() передал Looper : getLooper() По идее теперь я в UI-поток переношу процесс. Но все равно ругается
Сергій
А воркер треда
Dyno
по идее теперь такая структура должна была выйти: handler.post(new Runnable { run(and so on) })
Dyno
getLooper возвращает текущий лупер, а не главный
мм, а если использовать конструктор по умолчанию?
Сергій
мм, а если использовать конструктор по умолчанию?
Там будет мейн, зайди в конструктор и посмотри
Dyno
для хендлер
Mike
мм, а если использовать конструктор по умолчанию?
Хэндлера? Тоже, см. исходник. Кажется, тебе нужен Looper.getMainLooper()
Сергій
Или ...new Handler(Loopper.getMailLooper())
Mike
Там будет мейн, зайди в конструктор и посмотри
Не, из-за этого нельзя запускать AsyncTask.<clinit> на старье
Dyno
Почему бы не перейти на RxJava🤔
так надо ж посмотреть как оно изнутри работает))
Mike
Почему бы не перейти на RxJava🤔
Потому что сначала нужно научиться хорошо программировать
Dyno
о, с конструктором по умолчанию все работает. А я думал лупер он один, а их несколько?
Igor
Почему бы не перейти на RxJava🤔
Проще на котлин перейти, там даже думать не надо - пиши себе императивный синхронный код, а он магически превращается в асинхронный
Dyno
См. исходник HandlerTherad
исходник это что? документацию почитать о HandlerThread?
Игорь
Доброго времени суток. Никто не сталкивался с проблемой, когда вьюПейджер в связке с табЛаяутом автоматом при запуске открывает сначала 1 потом сразу 2 страницу но таб визуально выбран первый
Игорь
всмысле открывает? так так и должно быть. пейджер адаптер грузит текущую страницу и соседние
Хм. У меня при старте уже подгружен уже второй фрагмент ( который соответтвует второму табу ( с индексом 1)) хотя визуально выбран нулевой таб