Konstantin
ну и как с этим бороться, как просто выбросить фрагменты на помойку вместо сохранения в стейт
Konstantin
а просто уничтожать можно фрагменты? хоть руками
Konstantin
я понимаю что efficienсy но бесит эта фигня
Fearless
погоди, еще раз, почему два раза?
Fearless
поподробнее
Fearless
список же дублируется
Fearless
или два ресайклера становится?
Konstantin
ну, не сам ресайклер, данные в нем дублируются, не так выразился
Konstantin
т.е. адаптер остался тем* же и презентер ему за щеку напихал еще раз тот же список
Fearless
какой стэк?
Fearless
если null надо проинициализировать же
Olexandr
Расскажите как лучше кэшировать данные с сервера?
Konstantin
Расскажите как лучше кэшировать данные с сервера?
в репозитории по хэшмапу с критерием или в ретрофите
Konstantin
так че там по моему нубскому вопросу про ресайкклер? )
Fearless
сижу читаю
Fearless
давай еще раз про дебаг, что два раза вызывается?
Olexandr
локальном
Бд что ли?
Fearless
что угодно, что влазиет в понятие репозитория
Konstantin
О каком репозитории речь?
о том который закрывает апи бэкенда )
Fearless
это котлин
Konstantin
я обратил но этого недостаточно. мне надо еще и причину знать почему так
Konstantin
да не, не везде, всего 1 раз
Fearless
а я хз че за !! объясните
Olexandr
Тогда подскажите удобную либу для работы с бд, чтобы туда пихать данные с сервера
Fearless
просто решил что котлин и всё
Konstantin
а я хз че за !! объясните
назло всем кинуть NPE если null
Fearless
прикол
Fearless
но звучит как не супер нужно
Dmytro
Ребят, кто делал приложение будильник? Можете отозваться в лс Есть несколько вопросов, буду очень благодарен, если сможете ответить
Konstantin
ответ - мне нужно было 2 параллельных и 100% выполняющихся противоположных точки жизненного цикла
Konstantin
ну не паралельных а типа "на 1 ступени"
Konstantin
onresume-attach, onpause-detach. я пытался юзать create-destroy и start-stop или как там их, но не прокатило т.к. дестрой-стоп не всегда вызывается
Konstantin
так шта там какие то лизания памяти начались и вобщем, я забил, делаю просто в резюме
Konstantin
короч, childFragmentManager кеширует эти фрагменты, так?
Konstantin
из за этого юзается тот же адаптер а не делается новый
Olexandr
расскажите о принципе кэширования. вот к примеру я получил с сервера 5 объектов. через некоторое время зашел опять в прилу. на серве уже 15 объектов (+10), но прила этого не знает. интересно какие мне действия совершать при обновлении данных? сначала выводить кэш , а потом данные с серва или как?
Konstantin
мм да, решил, а так не делают? )
Fearless
чего ты пристал с инитом адаптера, это не решает проблему
Fearless
пока грузишь - отображаешь кэш
Fearless
прогрузил - записал в кэш, отобразил новую инфу
Fearless
ну правда ведь не решает
Fearless
к тому же создать адаптер не тяжелая операция
Konstantin
да че ты начинаешь, я то не против что ты спрашиваешь
Fearless
просто когда просят решить проблему, а ему начинают втирать за клинкод и прочее, это странно
Konstantin
это участь самоучек
Konstantin
знаешь в одном месте, не знаешь в другом
Konstantin
такие неконсистентные знания получаются, как дуршлаг, хоть на бошку одевай и становись пастафарианцем
Olexandr
прогрузил - записал в кэш, отобразил новую инфу
надо как-то же отделить часть новой инфы от старой (из 15ти объектов с серва 5 старых с кэша) :)
Fearless
инит нужно делать когда получил налл из менеджера
Fearless
а выше никаких инитов не должно быть
Fearless
вы должны передат ьтолько тэг
Fearless
удалить старые, загрузить новые
Fearless
хотите - пробуйте померджить
Olexandr
то есть после перезаписи опять выводить все из кэша (локал бд)?
Fearless
грубо говоря: List<Object> list = response(); save(list); showList(list);
Konstantin
надо как-то же отделить часть новой инфы от старой (из 15ти объектов с серва 5 старых с кэша) :)
да не отделяй ничего, грузи все с сервера, проси cache expire выставялть заголовки, по ним уже проверять будешь у себя. критерии к репозиторию в виде дата-классов котлина например, у них из коробки equals, hashcode работает, твой кеш можно реализовать как Hashmap<Criteria, Data(String)> например. repository.getSomeWtf(criteria){ return if ( cache.has(criteria) ){ cache.get(criteria) } else { result = api.getWTf() cache.save(criteria, result) result } }
Konstantin
ну так и где вернее то их делать?
Konstantin
это слишком очевидно и ответ не может быть настолько простым
Fearless
где по кайфу там и инициализируй
Fearless
просто если инфа не обновляется. то нет смысла делать в онРезьюм
Konstantin
мне всеравно непонятно почему
Fearless
вы умеете код читать?) у вас произойдет реплейс только когда менеджер вернет налл.
Fearless
уберите скобки
Fearless
у ифа
Fearless
и ctrl + alt+ l
Fearless
и отпишитесь о результате
Olexandr
бегло прочитал о realm. что-то не понятно как создать разные таблици в бд для одинаковых классов. например, "table1" и "table2" куда будем писать объекты класса User
Fearless
а зачем вообще разные таблицы?
Fearless
зачем разные таблицы для одинаковых сущностей?
Olexandr
ну например, в "table1" пишу юзеров, которые связаны по номеру телефона из телефонной книги девайса. а в "table2" пишу юзеров, которых нет на серве, но есть у меня в телефонной книге. как-то так
Olexandr
реально вообще сделать такое в realm?
Vladimir
Realm - это не sql
Fearless
а почему нельзя их разделять переменной типа boolean?
Olexandr
Realm - это не sql
тогда что посоветуете для моего случая?
Fearless
Room попробуйте