Size: a a a

StartAndroid Ru Chat

2020 September 18

А

Артём in StartAndroid Ru Chat
Sanctus
Помогите разобраться с ретрофитом... Есть метод который должен вернуть массив с данными. В этом методе загружаются данные ретрофитом. Но метод возвращает пустые данные так как ретрофит не успевает их загрузить, как тут быть?
"Не успевает" в смысле, Вы сделали метод с возвращаемым значением, а внутри асинхронный запрос?
источник

S

Sanctus in StartAndroid Ru Chat
arsenyi
Кинь код и json, который парсишь
источник

S

Sanctus in StartAndroid Ru Chat
Артём
"Не успевает" в смысле, Вы сделали метод с возвращаемым значением, а внутри асинхронный запрос?
да, асинхронный запрос.. синхронный придется сделать?
источник

a

arsenyi in StartAndroid Ru Chat
А json?
источник

a

arsenyi in StartAndroid Ru Chat
И модели ещё скинь
источник

S

Sanctus in StartAndroid Ru Chat
arsenyi
А json?
там ничего особого, несколько полей... вся соль в асинхронности...
источник

А

Артём in StartAndroid Ru Chat
Sanctus
да, асинхронный запрос.. синхронный придется сделать?
С асинхронным методом нужен коллбэк или любой другой инструмент, который его заменяет.
Flow, Coroutines, RX Java, etc.
источник

S

Sanctus in StartAndroid Ru Chat
Артём
С асинхронным методом нужен коллбэк или любой другой инструмент, который его заменяет.
Flow, Coroutines, RX Java, etc.
ну мне как я понял нужна синхронность, то есть execute(), что бы данные возвращались после получения их ретрофитом, а не раньше... Но так наверное не стоит делать иначе будет подвисание как я понимаю...
источник

А

Артём in StartAndroid Ru Chat
Sanctus
ну мне как я понял нужна синхронность, то есть execute(), что бы данные возвращались после получения их ретрофитом, а не раньше... Но так наверное не стоит делать иначе будет подвисание как я понимаю...
Ну, в основном потоке Вас никто в интернет "не выпустит". Чтоб сделать через execute, придётся создавать отдельный thread под него и т.д. Однако, да, для этого придётся синхронить при помощи thread.join(), иначе смысла снова не будет.
Поэтому нет, Вам не нужны синхронность. :)
источник

S

Sanctus in StartAndroid Ru Chat
Артём
Ну, в основном потоке Вас никто в интернет "не выпустит". Чтоб сделать через execute, придётся создавать отдельный thread под него и т.д. Однако, да, для этого придётся синхронить при помощи thread.join(), иначе смысла снова не будет.
Поэтому нет, Вам не нужны синхронность. :)
короче замкнутый круг 😐
А хотел методы с запросами всего лишь вынести в другой класс для удобства запроссов... эххх..
источник

a

arsenyi in StartAndroid Ru Chat
Sanctus
короче замкнутый круг 😐
А хотел методы с запросами всего лишь вынести в другой класс для удобства запроссов... эххх..
Ты можешь вынести ретрофит а другой класс и потом его вызывать
источник

S

Sanctus in StartAndroid Ru Chat
arsenyi
Ты можешь вынести ретрофит а другой класс и потом его вызывать
у меня это так и есть
источник

А

Артём in StartAndroid Ru Chat
Sanctus
короче замкнутый круг 😐
А хотел методы с запросами всего лишь вынести в другой класс для удобства запроссов... эххх..
Так и нужно. Методы с запросами в другой класс. И инструмент для асинхронной работы. Best practice.
источник

А

Артём in StartAndroid Ru Chat
Я прошу прощения, я немножко устал одно и то же говорить. Если интересно подробно разобрать этот вопрос - просто вникайте в то, что было написано выше.
источник

YN

Yerlan Nurakhmetov in StartAndroid Ru Chat
интересно, сколько в сети написано статей про retrofit?
источник

V

Vladushka in StartAndroid Ru Chat
Много
источник

a

arsenyi in StartAndroid Ru Chat
Yerlan Nurakhmetov
интересно, сколько в сети написано статей про retrofit?
Вполне достаточно, чтобы разобраться
источник

S

Sanctus in StartAndroid Ru Chat
Какие есть способы что бы узнать что данные обновились в массиве? Запустить поток который будет проверять это каждую секунду?
источник

a

arsenyi in StartAndroid Ru Chat
Sanctus
Какие есть способы что бы узнать что данные обновились в массиве? Запустить поток который будет проверять это каждую секунду?
Данные, в смысле пришел ответ с ретрофита?
источник

S

Sanctus in StartAndroid Ru Chat
arsenyi
Данные, в смысле пришел ответ с ретрофита?
вообще да, но не особо важно с ретрофита или нет, нужно проверить поменялись ли данный в ArrayList
источник