Size: a a a

Android Developers

2021 January 21

v

vitaly in Android Developers
Сергей Степаненко
Делаю приложение, в котором используется Room database и Firebase database. Хочу сделать синхронизацию между этими базами. Получаю данные с Firebase асинхронно, но по прошествии 1 минуты клиент отключается от базы и при попытке повторного запроса в базу, вылетает ошибка, пишет что клиент закрыт. Нашел, что если установить листенер, то клиент будет активен до тех пор, пока активен листенер. Устанавливал листенер, внутри него пытался в MutableList добавить данные и после возвратить их, но метод не дожидается пока данные будут занесены в лист и возвращает пустой список. Как можно получить данные и возвратить их? Архитектура приложения MVVM, соответственно вызов получается такой View->ViewModel->Repository->DataSource. Вот в DataSource происходит вызов метода, который должен собрать в лист данные и возвратить
Звучит как проблема с асинхронщиной, типа написал неблокирующее добавление в лист, а потом вернул его до того, как данные пришли
источник

СС

Сергей Степаненко... in Android Developers
Вот листенер. Если в лог писать, внутри foreach, то данные видны, а возвращается пустой лист
источник

RC

Roman Chumachenko in Android Developers
Сергей Степаненко
Вот листенер. Если в лог писать, внутри foreach, то данные видны, а возвращается пустой лист
Выше все верно написали. Нельзя вернуть из getAllNotes Результат асинхронный. Тут какой-то обозреваемый контейнер круто подойдёт. Корутины, rx или LiveData
источник

СС

Сергей Степаненко... in Android Developers
т.е. внутри создать LiveData<List<NoteData>> и в нее передавать данные?
источник

СС

Сергей Степаненко... in Android Developers
всмысле внутри класса
источник

RC

Roman Chumachenko in Android Developers
Сергей Степаненко
т.е. внутри создать LiveData<List<NoteData>> и в нее передавать данные?
Создать и вернуть из метода. Там где метод вызывается, подписаться на лайвдату и в коллбэке ее получать данные
источник

СС

Сергей Степаненко... in Android Developers
Спасибо! Попробую)
источник

RC

Roman Chumachenko in Android Developers
Сергей Степаненко
Спасибо! Попробую)
Только учитывай в каком потоке лиснер вызывается. Если это не главный (а это скорее всего не мэйн тред), то вызывай LiveData.postValue вместо setValue
источник

СС

Сергей Степаненко... in Android Developers
Спасибо!)
источник

d

danilshik in Android Developers
Ребят, может кто подсказать, почему я не могу получить доступ к переменной?
источник

с#

саша сок #KotlinGang... in Android Developers
danilshik
Ребят, может кто подсказать, почему я не могу получить доступ к переменной?
потому что private ?
источник

d

danilshik in Android Developers
саша сок #KotlinGang
потому что private ?
источник

d

danilshik in Android Developers
саша сок #KotlinGang
потому что private ?
источник

d

danilshik in Android Developers
В библиотеке на Java доступ предоставляется
источник

a

abyl in Android Developers
Всем добрый вечер, может и ночь или день))))
Такой вопрос, создал custom dialogfragment, в итоге его размер в ширину достаточно странный, в чём проблема?
xml : https://hatebin.com/uvrdfzgovw
custom dialog class: https://hatebin.com/udecfkgqcq
источник

СС

Сергей Степаненко... in Android Developers
Roman Chumachenko
Создать и вернуть из метода. Там где метод вызывается, подписаться на лайвдату и в коллбэке ее получать данные
Что-то у меня не выходит. Где первый лог, там данные есть, а где лог перед возвратом LiveData, там null. Я что-то не так сделал или нужен другой какой-то подход?
источник

a

abyl in Android Developers
abyl
Всем добрый вечер, может и ночь или день))))
Такой вопрос, создал custom dialogfragment, в итоге его размер в ширину достаточно странный, в чём проблема?
xml : https://hatebin.com/uvrdfzgovw
custom dialog class: https://hatebin.com/udecfkgqcq
screen :
источник

D

Denis in Android Developers
abyl
Всем добрый вечер, может и ночь или день))))
Такой вопрос, создал custom dialogfragment, в итоге его размер в ширину достаточно странный, в чём проблема?
xml : https://hatebin.com/uvrdfzgovw
custom dialog class: https://hatebin.com/udecfkgqcq
попробуй что-то типа такого. но хз как оно будет работать с диалогФрагментом. С обычными диалогами работает
источник

a

abyl in Android Developers
Denis
попробуй что-то типа такого. но хз как оно будет работать с диалогФрагментом. С обычными диалогами работает
можете в hatebin залить, скопировать просто )
источник

DB

Dmitro Boiko in Android Developers
переопределите window или стиль и все
источник