Android: обновление recyclerview с новыми данными

#android #android-fragments #android-recyclerview

#Android #android-фрагменты #android-recyclerview

Вопрос:

В моем приложении есть recyclerview. В первый раз, когда я открываю фрагмент, он отправляет запрос api и обновляет recyclerview.Когда я снова открою тот же фрагмент, он снова отправит запрос и обновит recycleview, даже если данные были загружены ранее.Поэтому, чтобы избежать этого, я использовал статическую логическую переменную, чтобы проверить, были ли загружены данные или нет.Таким образом, это позволяет избежать повторяющихся сетевых вызовов, но предположим, что я использую приложение, и данные были загружены, но если данные изменены с внутреннего сервера, это не отразится в моем приложении, поскольку логическая переменная будет установлена true при первой загрузке и не будет выполнять никаких других вызовов api. Итак, каков стандартный подход к этому.

Комментарии:

1. Проверьте push-уведомления, чтобы ваши устройства знали, что новые данные доступны, и соединение должно быть выполнено снова.

2. @Android jack: опубликуйте свой код что-нибудь о том, что вы сделали

3. @Android jack прикрепите временную метку с ответом, если предварительно определено, что данные будут изменены через это время, сравните первую временную метку, а затем выполните вызов api, кроме того, используете ли вы какую-либо сетевую библиотеку?

4. @Jai: я уже упоминал, что я пробовал. Я не прошу готовый код, а для выполнения стандартной процедуры. Каждый раз, когда мы просто не можем опубликовать код, это было бы слишком долго для публикации.

5. согласен с @zozelfelfo. Push-уведомление — это правильный способ получить новые данные, если что-то изменится в серверной части.

Ответ №1:

Поскольку кто-то уже упоминал здесь, вы можете использовать push-уведомление, чтобы уведомить свое приложение о том, что в данных из серверной части произошли некоторые изменения, и вы можете снова обратиться к api для обновления данных. Вы можете проверить эту ссылку

Кроме этого, вы всегда можете отслеживать время, когда был сделан ваш последний сетевой вызов. Если время превышает X количество часов / дней, вы можете снова обратиться к API. Надеюсь, это ответит на ваш запрос.