Size: a a a

StartAndroid Ru Chat

2021 February 17

DK

Denis Koval in StartAndroid Ru Chat
сам код в воркере
источник

I

Ivan in StartAndroid Ru Chat
Denis Koval
Всем привет. Вопрос по WorkManager-у
Запускается воркер при появлении сети и обновляет запись в базе данных. запись успешно обновляется, и все хорошо.
Но стоит мне зайти в приложение - запись в базе возвращается на старое значение. будто транзакция отменилась, хотя транзакция была помечена как successful и даже в базе строчка обновилась.

Если не заходить в приложение, а запустить через adb студии, то запись, которая была изменена в воркере, - остается созраненной, что и правильно...
Никто не сталкивался с такой ситуевиной?
ощущение как будто при открытии приложения какой-то код перезаписывает значение
источник

DK

Denis Koval in StartAndroid Ru Chat
Ivan
ощущение как будто при открытии приложения какой-то код перезаписывает значение
это не так.
Почему тогда при запуске через адб - все норм
источник

DK

Denis Koval in StartAndroid Ru Chat
Если убить апп, то следующий запуск будет с актуальными данными
источник

DK

Denis Koval in StartAndroid Ru Chat
https://issuetracker.google.com/issues/180436099
гугл говорит писать в баги по sqlite, хотя это баг явно в ворМенеджере
источник

M

Mikhail Android in StartAndroid Ru Chat
Проверь где вызываются методы записи в БД
источник

M

Mikhail Android in StartAndroid Ru Chat
И лог поставь в них
источник

DK

Denis Koval in StartAndroid Ru Chat
прологировал все, ни один не вызывается
источник

DK

Denis Koval in StartAndroid Ru Chat
Denis Koval
прологировал все, ни один не вызывается
кроме того что в воркере
источник

DK

Denis Koval in StartAndroid Ru Chat
Denis Koval
кроме того что в воркере
Проблема решена. дело было в интерцепторе, который слал некорректные данные на сервак)
спасибо за помощь
источник

V

Vladushka in StartAndroid Ru Chat
у меня по всему проекту такой такой подход, юз кейсы ходят в репозиторий, дергают апи и хендлят успех и эрор, вопрос: как я могу тут , не смотря на ошибку (например 400 ответ) получит респонс боди
никак не могу нагуглить правильный подход
источник

V

Vladushka in StartAndroid Ru Chat
находила инфу про CallAdapter, но не сильно хочется выпиливать уже работающее и пересывать ( хочется обойти минимальными изменениями
источник

VL

Vladyslav Lozytskyi in StartAndroid Ru Chat
Vladushka
у меня по всему проекту такой такой подход, юз кейсы ходят в репозиторий, дергают апи и хендлят успех и эрор, вопрос: как я могу тут , не смотря на ошибку (например 400 ответ) получит респонс боди
никак не могу нагуглить правильный подход
Вот поэтому я всегда отдаю ошибки наверх из репозитория. Но конкретно в вашем случае, что мешает кастомный exception сделать и в него запихивать респонс? А в кетче по типу конкретной ошибки хендлить? Костыль, но минимум
источник

V

Vladushka in StartAndroid Ru Chat
Vladyslav Lozytskyi
Вот поэтому я всегда отдаю ошибки наверх из репозитория. Но конкретно в вашем случае, что мешает кастомный exception сделать и в него запихивать респонс? А в кетче по типу конкретной ошибки хендлить? Костыль, но минимум
не подумала об этом, спасибо !
источник

DK

Denis Koval in StartAndroid Ru Chat
Vladushka
у меня по всему проекту такой такой подход, юз кейсы ходят в репозиторий, дергают апи и хендлят успех и эрор, вопрос: как я могу тут , не смотря на ошибку (например 400 ответ) получит респонс боди
никак не могу нагуглить правильный подход
if (e  is HttpException) {
(e as HttpException).response()?.errorBody()
}
источник

DK

Denis Koval in StartAndroid Ru Chat
сработает для ретрофита
источник

АК

Анатолий Колосков... in StartAndroid Ru Chat
Доброго времени суток, ребята подскажите как импортировать
источник

АК

Анатолий Колосков... in StartAndroid Ru Chat
источник

АК

Анатолий Колосков... in StartAndroid Ru Chat
Kotlin.android.synthetic
источник

ИЗ

Иван Захаров... in StartAndroid Ru Chat
забей на синтетики, используй обычную инициализацию на уровне класса
private val navView: NavigationView get() = findViewById(R.id.nav_view)
источник